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。

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