2014年12月30日 星期二

[Linux] 簡單安裝 Install tftp server in Linux simply

很久很久以前的 hpa-tftpd 的安裝方法....

實在有點難用又過時了。
2009 年 ~ ---> Ubuntu 都不知道換了幾次臉。

為了讓google 自己方便,下面記載新的方法。


2014年12月15日 星期一

[Linux] lunbuntu + unetbootin + live USB


這超迷你版的USB,哈~ 超無痕的。可惜速度是假USB3.0


unetbootin 用來製作 live USB 這件事情就不用說了,Easy and more in google.


稍微解說一下原理:
載用syslinux 的booting loader 來帶起作業系統,因為是live 每次開機都會洗掉,根據這點很輕易的就可以在
"/xxx/xxx" 發現採用squashfs 一個read-only 壓縮檔案系統,這邊看起來都跟平常工作的嵌入式系統類似,特別的是
unetbootin 是有提供使用者讀寫修改,下次重開機可以記錄保留的效果

何等神奇!!! 馬上下一個 mount & losetup -a 檢查一下

root@lubuntu:~# mount /cow on / type overlayfs (rw) 
/dev/sdb1 on /cdrom type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) 
/dev/loop0 on /rofs type squashfs (ro,noatime) 
/dev/loop1 on /media/bejo/c698766a-48e2-6d45-81ae-fe5fba3ff6f2 type ext2 (rw,nosuid,nodev,uhelper=udisks2)
root@lubuntu:~# losetup -a 
/dev/loop0: [0811]:35 (/cdrom/casper/filesystem.squashfs) 
/dev/loop1: [0811]:41 (/cdrom/casper-rw) 

loop1 就是那神奇的 casper-w

如果你做一個 mount 動作
mount -o loop casper-rw /mnt/xxx
就會發現長得非常類似(根本一樣 = =) 一個基本的file system 又剛剛好是你改過的檔案

哪有這麼剛好,原來 ...
是 overlap ... mount

原理就是先掛一個static 的image 再把自己可以修改的蓋上去,噹噹  完成檔案系統可以紀錄被修改的樣子
效果就會 ---> 先讀取可讀寫的 如果沒有 ---> 讀取靜態的 ---> 結束這回合

孔明先生,這太妙了。

說一下重點:
1. 從此只要備份好 casper-w 這個檔案,凡是live usb 都可以被還原 (自己還原自己作)
2. 可以加大 casper-w 大小
方法:
(找一台Linux  不是同一台!!!)
#dd if=/dev/zero bs=1M count=1024 >> casper-rw   // 1024MB ---> 自行更改 別超過4G
#e2fsck -f casper-rw
#resize2fs casper-rw

創造一顆新的:
#dd if=/dev/zero of=casper-rw bs=1M count=1024 
#mkfs.ext3 casper-rw

曾經想辦法突破4GB,受限於FAT32大小只能支援到此,
ext3 -> 可booting 更換不了超過4GB 
ext2 -> 開機不能
ext4 -> 開機不能
ntfs -> ... 你在開玩笑嗎?

只好認命了。

這種手法來記錄file system 的修改,印象似乎在OPENWRT也是如此,時光有限,待有緣再分享。

[Linux] dlopen 和 dlsym

我都說這些是放再經書 (C tools) 最末頁妖魔鬼怪API ....

原理網路上很多,這裡簡單筆記就好。

2014年12月3日 星期三

[Bash] bash_completion - 命令強迫補完計畫 (?

沒有計畫~ 只有... 搗蛋

最近幾版的 Ubuntu lubuntu  的兔兔娘... command line 跑起來頗靈異

當發生
make <tab> <tab> 連按很多下會看到

--
root@bbG:~# make 23:set: command not found
23:set: command not found
--
原本是預期看到 /path/to/some/where

2014年11月24日 星期一

[Linux] lubuntu - Unity byebye

Unity you are so xxxx......

恩.. 最近一台工作Server 整個partition 被掛載成 read-only, 稍微檢查一下應該是disk checking 壞軌,很大心的就給他"呂布"...下去

掛了 =____________=
再起不能。
不要逼我換最新版的烏奔兔,那個U什麼跟什麼nity的好難用又好醜....

幸好... 跟我一樣煩惱的人很多....

2014年11月11日 星期二

[Kernel] 叫你的kernel 跑你程式

Ask your kernel to run your mama userspace process

上面僅供參考。

通常來說Linux kernel/user space 分際是很嚴謹的,尤其是記憶體存取,往往得靠 copy_to_user copy_from_user 至於操作就更多了,netlink、 proc、ioctl 、open/read/write/fcntl。
Linux效率上會輸給輕鬆達成zero-copy 的Cisco IOS,看完IOS的Source code發現根本就是逆天阿(下略5千字...),天生作message/packet control 的奇才....  @@

既然兩個模式楚河漢界,能突破這種規範就真的非常值得玩玩。

下面就一起來跑你.....(下略


2014年10月25日 星期六

[五四三] TPMS 胎壓偵測~裝裝裝

其實是看到這篇文章....

平常開自己也都是疑神疑鬼的...  總是感覺輪胎都偷偷不認真工作!!! 大概是之前中過幾次釘,研究了一下市面上貨色,胎內胎外什麼。

最後決定來裝 ORO 的 W401B 省電型的,好像買個接收器還可以跟車上的目擊者整合耶,雖然這樣,最近目擊者有點秀逗,還是不要整再一起好了,免得一起過世。


2014年10月20日 星期一

[五四三] 讓Line 更方便打電話


現在網路都跑到4G的速度,支撐語音流量早就是一塊蛋糕,二話不說,先去電信局轉平板專案,把話租降到最低 --> $0,這方案還是可以講電話啦,只是僅有區區一百塊的額度,超過就是網內$3網外$6, 還好網路4G頗快,要好好用網路的優勢,把語音的部分也轉到網路使用才對。


2014年6月3日 星期二

[C code] dup() dup2() 奇妙的FD複製....

好吧...
是突然看到
--
close(0); close(1); close(2);
    if (!tty || !*tty) {
        if (open("/dev/null", O_RDWR|O_NONBLOCK) >= 0)
            dup(0), dup(0);
        return;
    }
--

這沒營養dup(0) 還作兩次,WHY?!
仔細想一下,突然讓人笑出來...  哈,果然不是那麼沒營養...