2019-06-04

20190604

RT-N18U

https://busybox.net/downloads/binaries/1.26.2-defconfig-multiarch/

#busybox-armv4l --help
BusyBox v1.26.2 (2017-01-10 16:08:05 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

 BusyBox is a multi-call binary that combines many common Unix
 utilities into a single executable.  Most people will create a
 link to busybox for each function they wish to use and BusyBox
 will act like whatever it was invoked as.

Currently defined functions:
 [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash, awk, base64, basename, beep, blkdiscard, blkid,
 blockdev, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst,
 chroot, chrt, chvt, cksum, clear, cmp, comm, conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd,
 deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg,
 dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, fakeidentd,
 false, fatattr, fbset, fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk,
 fsck, fsck.minix, fstrim, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm,
 head, hexdump, hostid, hostname, httpd, hush, hwclock, i2cdetect, i2cdump, i2cget, i2cset, id, ifconfig, ifdown, ifenslave,
 ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, ipneigh, iproute,
 iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap,
 logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat, lzma, lzop, lzopcat,
 makedevs, makemime, man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.vfat,
 mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite,
 nbd-client, nc, netstat, nice, nmeter, nohup, nsenter, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof, ping,
 ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pstree, pwd,
 pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot, reformime, remove-shell, renice, reset,
 resize, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-parts, runsv, runsvdir, rx, script, scriptreplay, sed,
 sendmail, seq, setarch, setconsole, setfont, setkeycodes, setlogcons, setserial, setsid, setuidgid, sh, sha1sum, sha256sum,
 sha3sum, sha512sum, showkey, shuf, slattach, sleep, smemcap, softlimit, sort, split, start-stop-daemon, stat, strings,
 stty, su, sulogin, sum, sv, svc, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, tcpsvd, tee,
 telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true, truncate, tty, ttysize,
 tunctl, ubiattach, ubidetach, ubimkvol, ubirename, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpd, udpsvd, uevent,
 umount, uname, unexpand, uniq, unix2dos, unlink, unlzma, unlzop, unshare, unxz, unzip, uptime, usleep, uudecode, uuencode,
 vconfig, vi, vlock, volname, watch, watchdog, wc, wget, which, whoami, whois, xargs, xz, xzcat, yes, zcat, zcip

2019-06-02

20190602

letsencrypt wildcard
dehydrated dns-01 challenge+ duckdns txt record

dns.conf
CA="https://acme-v02.api.letsencrypt.org/directory"
CHALLENGETYPE="dns-01"
HOOK="/etc/dehydrated/hooks.d/duckdns.sh"
HOOK_CHAIN="yes"

duckdns.sh
...
    "deploy_cert")
        sleep 4
        ;;
...


/etc/dehydrated/dehydrated --config /etc/dehydrated/dns.conf -c  -d "yourdomain.com *.yourdomain.com" --alias wildcard.yourdomain.com

2015-06-27

20150627

Debian Testing的機器上使用的音效晶片是VIA VT2021
Jessie時還用的好好的,最近升上Stretch又出問題

最近才曉得原來這次更新完前置耳機不是沒有聲音
而是開機後音量自動變成0%,mute也自動開啟
真的找不出解法,只能先這樣orz

~/.xsessionrc
#如果有這個檔案,加入這兩行
amixer -c 0 set Headphone 100% &
amixer -c 0 set Headphone on &

2015-05-01

20150501

比起win98那年代常常一睡不起的情形,現在suspend功能已經很成熟了
家人的PC,除了我去維護的時候會reboot,其他時間都是用suspend
穩定度已經完全可以信賴
Windows上去裝置管理員把鍵盤喚醒的選項關閉就能避免誤觸喚醒
就只能透過電源鍵來喚醒

而Linux上的suspend,GUI只能控制電源鍵的行為
關閉鍵盤喚醒的行為要在/etc/udev/rules.d/新增一個rule

/etc/udev/rules.d/disable-wakeup.rules
#keyboard
SUBSYSTEM=="usb", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="2011" RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../power/wakeup'"


idVendor和idProduct的值從lsusb的結果去看哪個是你的鍵盤
也可以透過google來取得,我所使用的Filco majestouch在lsusb當中我辨識不出來
直接搜尋並對照lsusb的結果,執行udevadm trigger後
就只能透過電源鍵來喚醒

p.s.系統是debian jessie


Update: 2015/06/22
使用Debian Testing的機器升上Stretch後,上述的方法又沒效了。
ArchWiki惠我良多XD

/etc/udev/rules.d/disable-wakeup.rules
#keyboard
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="2011" RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../power/wakeup'"

要多加上ACTION=="add",

2015-01-11

20150111

最近研究,關於UEFI總算是有些粗淺的了解。

UEFI的MB會使用NVRAM來儲存你設定的開機選項,或你曾使用過的開機選項。
這幾筆紀錄有時候會自己不見,又有些時候沒有裝上任何硬碟也會顯示。

找到自定義的UEFI的開機紀錄時:
就照著MB中設定的優先權順序跑。

當找不到任何自定義的UEFI的開機紀錄時:
UEFI會去找所有儲存媒體上的/EFI/boot/bootx64.efi來啟動x86_64的系統。
類似BIOS去/dev/sd*找bootloader這樣。
但如果只是這樣,就顯不出UEFI跟BIOS的分別。

可以存放數種的bootloader在EFI分割區,再去選擇自己要啟動的bootloader。
在Linux上可以用efibootmgr來管理NVRAM,通常是會跟grub-efi一起裝上。
Windows也有自帶管理工具bcdedit。
以前的習慣通常是先安裝windows,再安裝Linux。
用grub來管理多重開機的選項,但使用UEFI後就有些不太一樣。
 
debian Jessie目前的行為是將grub安裝到/EFI/debian/grubx64.efi。
但不會去動到原本的/EFI/boot/bootx64.efi。
所以如果是先安裝windows,再安裝debian。
重開機後要看到grub的畫面,必須在boot時選用efibootmgr建立的grubx64.efi的選項。 

ubuntu 13.04的行為則是把grub安裝到/EFI/boot/bootx64.efi。
13.04之後的ubuntu我還沒有試用過,就不清楚 。
如果原本的硬碟上已有安裝windows,必須要先把windows的bootx64.efi備份起來。
以UEFI模式安裝的windows,這檔案似乎是必須存在才能啟動。

我常用來備份Windows的Clonezilla,對於UEFI模式安裝的windows也可以正常使用。
但不知道為了什麼原因,Clonezilla還原後會把UEFI的NVRAM通通清掉。
因此最後我還是把windows的bootx64.efi給搬了出來。
再把grubx64.efi丟到/EFI/boot/bootx64.efi 。

 

最後,grub好像沒有辦法chainloader clover。

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