2016年2月23日 星期二

[RPi] nl80211 driver is not supported

最近測試 Raspbian Jessie, 遇到很多莫名其妙的問題
例如原本使用命令列做 WPA 驗證和取得 DHCP, 使用的指令為
$ sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
$ sudo dhclient wlan0
現在會出現這樣的錯誤訊息
Successfully initialized wpa_supplicant
nl80211: Driver does not support authentication / association or connect commands
wlan0: Failed to initialize driver interface
查了一下就是字面上的意思, nl80211 不支援這些語法, 要改為用原生的擴展, 因此要加上 -D wext
$ sudo wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
$ sudo dhclient wlan0
當然如果高興的話也可以寫成 systemd, 這樣就可以用 daemon 的方式啟動了

reference:
* WPA supplicant

2016年2月15日 星期一

[Linux] linux 初始化 init 系統

話說 Debian 從 Wheezy 昇到 Jessie 以後, 一些系統設定都不一樣了, 例如初始化系統(init system)

這篇有簡單比較一下 SysVinit, Upstart 和 Systemd 的常用指令

如果要看歷史故事(?)和比較詳細的說明, 可以先從這三篇看起吧
1. 淺析 Linux 初始化 init 系統,第 1 部分: sysvinit
2. 淺析 Linux 初始化 init 系統,第 2 部分: UpStart
3. 淺析 Linux 初始化 init 系統,第 3 部分: Systemd

2016年2月13日 星期六

[Wordpress] 客製化sidebar

要客製化 sidebar 首先要建立 widget, 可以使用 Image Widget 這個 plugin 新增圖片 widget

圖的部份如果要文字疊圖簡單版使用 photocap, 如果想高檔一點再弄個圖層半透明的可以用 iPhotoDraw

sidebar 就是使用 Custom Sidebars 這個 plugin, 可以看影片教學

不同頁面要有不同的 sidebar, 就只好一個一個設定不同的 sidebar 裡面放不同的 widget, 不知道有沒有更好的方法?

2016年2月12日 星期五

[BeagleBon] BeagleBone Black一些有趣的專案


OpenROV 做潛水艇:
- 簡介:DIY submarine OpenROV power by BeagleBone
- 簡介:Linux-based underwater robot goes faster, longer
- 套件:OpenROV STORE




ROS 做六足機器人:
- 專案:Hexapod-робот под управлением ROS(俄文)
- 影片:https://www.youtube.com/watch?v=MAnXVhC6eX0#t=139





四軸飛行器 + FPV(First-person view)
- 募資頁面:Sky Drone FPV




機器人擴充版(Robotics Cape)
- 介紹:BeagleBone Black project spotlight: Robotics Cape by Strawson Design
- 影片:From Prototype to Product with the BeagleBone Black
- 購買:Robotics Cape





遊戲機擴充版(BeagleBone GamingCape)
- 介紹:BeagleBone GamingCape
- 影片:BeagleBone GamingCape




運算叢集
- 介紹:BeagleBone Black Cluster: Demo Build
 

2016年2月11日 星期四

[Kernel] 練習追蹤核心小例子

kernel 很龐大, 要怎麼開始追蹤呢?

這篇從 /proc/version 開始, 介紹了幾個相關的檔案, 最後找到實做的部份, 是一個不錯的簡單小例子


參考:cat /proc/version在内核中是如何实现的?

[BeagleBone] 備份與還原 eMMC

由於BeagleBone Black 內建 eMMC所以買回來一開機就可以使用聽起來不錯可是如果寫壞 eMMC 怎麼辦? 要如何備份或是還原 eMMC? 要如何寫入新的 image?

備份的方式有兩種:

方法一使用傳統的 dd可以用 microSD 備份或是網路備份
1. 使用 microSD 備份插入 microSD指令 dd if=/dev/emmc of=/dev/microsd bs=4M可以先用 ls -al /dev/disk/by-id 分辨 /dev/emmc 和 /dev/microsd 的路徑

2. 使用網路備份指令 dd if=/dev/mmcblk0 bs=4M | ssh user@x.x.x.x 'dd of=/home/user/origBBB.img bs=4M'將會把 image 透過 ssh 傳到 user@x.x.x.x:/home/user


方法二, 使用autorun.sh
參考這篇,不過目前試的結果是失敗的



還原的方式也有兩種:

方法一透過 microSD修改 microSD 裡的 /boot/uEnv.txt將 #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh 註解拿掉(把 # 移除)插到 BeagleBone Black 後開機系統讀取 MLO 後會讀取 uEnv.txt如果註解拿掉將會從 microSD 寫到 eMMC

方法二透過 microSD將已經有 image 的 microSD 插到 BeagleBone Black 開機系統將會讀取 MLO 後從 microSD 開機進入系統後使用 dd 將 microSD 的 image 寫到 eMMC指令 dd if=/dev/microsd of=/dev/emmc bs=4M可以先用 ls -al /dev/disk/by-id 分辨 /dev/emmc 和 /dev/microsd 的路徑


寫入新的 image 方法:
如同還原的方法一樣,所謂新的 image 就是去下載官方的 image 而已。


reference:
* How to backup BBB eMMC card
* Writing a new Image to the Beaglebone Black
* BeagleBone Black Extracting eMMC contents
* BeagleBoard.org Latest Firmware Images