2014-10-02

20141002

ASUS USB-N10 Nano 在Debian上的驅動方式


https://wiki.debian.org/rtl819x
晶片是realtek的rtl8192cu,但按wiki上步驟操作還是無法使用。
dwa130_revC_drivers_linux_006.zip也不能下載。


又爬了很多資料,試了很多種方法,總算成功了。

firmware-realtek包的rtl8192cu.ko這個module是可以用的。

但要自己加入一個module.conf
/etc/modprobe.d/rtl8192.conf

#enable hotplug via modprobe
#udev asks modprobe for special modalias, so load appropriate module and then add new device id
#{vendor ID} and {product ID} must be in upper case
# for ASUS USB-N10 NANO v0B05p17BA

alias usb:v0B05p17BAd*dc*dsc*dp*ic*isc*ip* rtl8192cu
install rtl8192cu /sbin/modprobe --ignore-install rtl8192cu ; echo "0b05 17ba" > /sys/bus/usb/drivers/rtl8192cu/new_id

# Workaround for dropping connections because of power save
options rtl8192cu rtw_power_mgnt=0 rtw_enusbss=0

實測後,wheezy、jessie都是這樣做。
從購買到能用為止,超過7天,要是真的不支援大概也不能退貨了。

2014-08-12

20140812

RT-N18U的pppoe-relay又找出了一種方法 。
是從Asus原廠的F/W撈出來的,步驟如下:

mount -o loop,offset=1647084 RT-N18U_3.0.0.4_374_4983-g18ff1de.trx /mnt
scp /mnt/usr/sbin/pppoe-relay root@192.168.1.1:/jffs


以上我是在Linux上操作所以能用scp,Windows使用者就直接用putty登入N18U的SSH:

cd /jffs
wget https://googledrive.com/host/0BwylkZYAMmIWcmZwcnBVcHRfRmM/pppoe-relay
之後就和RT-N16的pppoe-relay一樣,Tomato開機時讓他執行這行scripts
sleep 10 && /jffs/pppoe-relay -S vlan2 -C br0


offset的值是參考trx header
http://wiki.openwrt.org/doc/techref/header


2018-02-20更新:
因Google把直連的功能拔掉
請需要的人自行下載並想辦法用putty上傳
(記得是只要把檔案拖進視窗內)
https://drive.google.com/open?id=0BwylkZYAMmIWTDlNWGdIRUxuMEk

2014-08-08

20140808

loop mount是我很喜歡的功能,RT-N18U的chroot要這樣用也行。
改成磁碟映像檔的話,隨身碟也就沒有一定要用ext4的限制。
用fat32也可以的話,那隨便找一個贈品的2G~4G隨身碟就很堪用了。


Tomato的啟動script要修改成這樣的內容:
sleep 5
mkdir /tmp/loop
mount /dev/sda1 /tmp/mnt
mount /tmp/mnt/wheezy_armel.img /tmp/loop
/tmp/mnt/mount_this.sh


把檔案給有興趣但平常不使用Linux的朋友,也當成自己的異地備份。

"下載"

解開壓縮檔後,將chroot_to_bash.sh、mount_this.sh、umount_this.sh、wheezy_armel.img這四個檔案置於隨身碟的根目錄下。
USB裝上RT-N18U後,重啟就完成了。
 
放上來的版本只有打開了pppoe-relay。
SSH開啟後能以root/root登入,locale是zh_TW.UTF-8。
但port 22要在內建的dropbear和chroot debian的SSH之中選一個。
我是改掉dropbear的port,甚至還可以去WebUI想用再打開來節省資源。
裏面沒植入什麼怪東西,前面也有debootstrap的方法可以自己客製化。


還在用RT-N16時,pppoe-relay都放在/JFSS裏。
每次想刷新版軔體時,還要先清掉才能刷,以後大概都這樣用了吧。

2014-08-05

20140805

RT-N18U開機後掛載隨身碟

sleep 5
mount /dev/sda1 /mnt
/mnt/mount_this.sh
chroot後執行/etc/rc.local
需要啟動的服務丟到rc.local中
/tmp/mnt/mount_this.sh
#!/bin/sh

if [ -d /mnt/wheezy_armel ]; then
mount --bind /proc /mnt/wheezy_armel/proc
mount --bind /dev/pts /mnt/wheezy_armel/dev/pts

chroot /mnt/wheezy_armel /etc/rc.local

fi
/etc/rc.local (/tmp/mnt/etc/rc.local)
#!/bin/sh -e
#
# rc.local
#
service ssh start

pppoe-relay -S vlan2 -C br0
exit 0

2014-08-03

20140803

之前就發現這情形了,不過一直沒去找解法。
想要開機預設不啟動X,讓使用者自己執行startx。

如果是搜尋到更早之前的文章,或許會叫你去改/etc/inittab。
開機進入runlevel 3,而不是runlevel 5,但這作法已經不能用好幾年了。

Wheezy:
修改/etc/default/grub
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash init=/bin/systemd"
GRUB_CMDLINE_LINUX_DEFAULT="text init=/bin/systemd" 
加入text參數後,update-grub。
但不曉得在哪次更新後,這方法在Jessie上不能用了。

Jessie:
修改/etc/default/grub
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash init=/bin/systemd"
GRUB_CMDLINE_LINUX_DEFAULT="3 init=/bin/systemd" 

但剛剛試了一下,Wheezy還是只能用text參數。
給"ro 3 init=/b…"這樣的參數,一樣會進X,而且runlevl =3。
而"ro text init=/b…"這樣的參數,不會進X,runlevl =5。

唉,不能有個一致、不變一點的做法嗎?

2014-07-29

20140729

RT-N18U的處理器改用Cortex A9(ARMv7)的BCM47081,而不是原本的MIPS。
就沒辦法使用mipsel的pppoe-relay,做了一些研究。
可以用chroot的方式在N18U上跑debian,直接用debian裏面的pppoe-relay。


Desktop上的操作:
準備隻空的隨身碟,fs我是用ext4,mount到/mnt或其他你喜歡的地方。
debootstrap --arch=armel --foreign wheezy /mnt http://free.nchc.org.tw/debian

等流程跑完,debootstrap的前置準備就完成了。

將隨身碟mount到N18U的/mnt之後的操作:
mount /proc /mnt/proc -t proc
chroot /mnt /debootstrap/debootstrap --second-stage

切換到chroot環境下:
chroot /mnt /bin/bash

順便修改一下sources.list
deb http://free.nchc.org.tw/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main


apt-get update;apt-get install pppoe
pppoe-relay -S vlan2 -C br0 
測試撥號連線,能做到這邊應該就會成功了。

2014-07-28

20141728

上週購買了ASUS的無線分享器RT-N18U
並當了革命先烈,勇氣十足的刷了Tomato Shibby K26ARM下去。
http://tomato.groov.pl/download/K26ARM/
購買時已經是121版,為了方便,我借用家人的筆電來進行刷機。
但忘了他設定成5分鐘沒進行操作就進入休眠,按下更新軔體之後人離開了一下。
回來看到螢幕是黑的才想起來這件事情,悲劇啦!

所以若是在正常的流程下,N18U刷起Tomato會不會有這些怪問題,不太清楚。

救援的過程:
設定電腦的IP為
IP address  192.168.1.X
Subnet mask  255.255.255.0
Gateway  192.168.1.1

按下reset鍵不放並開啟電源,見Power燈號持續閃動後即可放開。
即進入所謂救援模式,可以用TFTP、ASUS的工具程式上傳軔體。
此時似乎還會有一個CFE miniweb server介面會開啟,我是沒有用這個。


奇怪的現象1:
刷入Tomato Shibby K26ARM之後,連不上WEB UI做管理的動作。
一度以為機器已經磚了…
死馬當活馬醫,試著刷回原廠軔體,結果是正常的。
不信邪再刷Shibby,依舊連不上WEB UI,但發現ping N18U是有回應的。
試著telnet進去,預設使用者密碼為root/admin,這httpd好像沒有啟動阿。
執行httpd -p 80後,能進WEB UI了。

清除NVRAM裏面全部資料!
清除NVRAM裏面全部資料!
清除NVRAM裏面全部資料!

很重要所以要講三次。

清除NVRAM後重啟機器,httpd也正常自動啟動了。


奇怪的現象2:
Bandwidth Monitor和 IP trafic的部份不會有紀錄。
但Shibby的change log上說有修好。

奇怪的現象3:
想啟用jffs,格式化後顯示錯誤,但重啟後能用。


結論:
K26ARM目前能用了。
RT-N18U訊號比RT-N16強一點點。