TL;DR (For files of TinkerOS v2.0.8) Updated: Dec.27'2018
-
Environment 1: Tinkerboard, 2 x microSD(TinkerOS, Raspbian), USB SD cardreader
- /dev/mmcblk0 = TinkerOS
- /dev/sda = Raspbian (USB SD cardreader) and it is mounted under /media/linaro/{boot,rootfs}
-
Environment 2: Raspberry Pi, 1 x microSD
- /dev/mmcblk0 = Raspbian
Operation
You should set RASPBIAN_DISK
and RASPBIAN_DIR
as your env.
#Env1: TinkerBoard + USB Card reader
RASPBIAN_DISK=/dev/sda
RASPBIAN_DIR_BOOT=/media/linaro/boot
RASPBIAN_DIR_ROOTFS=/media/linaro/rootfs
#Env2: Raspberr Pi
#RASPBIAN_DISK=/dev/mmcblk0
#RASPBIAN_DIR_BOOT=/boot
#RASPBIAN_DIR_ROOTFS=/
mkdir ~/work
cd ~/work
#TINKEROS_VER=TinkerOS-20180321_v2.0.5
#TINKEROS_VER=TinkerOS-20180622_v2.0.7
TINKEROS_VER=TinkerOS-20181023_v2.0.8
wget https://github.com/mt08xx/files/raw/master/${TINKEROS_VER}_kernel_lib_idbloader.tbz
tar xf ./${TINKEROS_VER}_kernel_lib_idbloader.tbz
sudo dd if=./tmp/${TINKEROS_VER}_idbloader.img of=${RASPBIAN_DISK} seek=64 conv=notrunc
sudo cp -rvn ./boot/* ${RASPBIAN_DIR_BOOT}
sudo cp -rvn ./lib/* ${RASPBIAN_DIR_ROOTFS}/lib/
#sudo touch /media/linaro/boot/ssh
sudo poweroff
- ASUS TinkerBoardで、Raspbianイメージを起動したところ。Terminalの文字見れるかな??
概要
- Raspbianのイメージに、TinkerBoardのKernelとか、modulesとか、u-bootあたりをつっこめば動くんじゃ...
- やってみたら、RaspberryPiでも、TinkerBoardでも起動するイメージになりました。
- ラズパイに強く依存してるようなアプリケーション・ハードウェア関係は動きませんよね??
- Minecraft とか、Wolfram とかは、NG
- CSI Cameraとか、も動かない
- うまく動いたものがあれば、コメントあたりで教えてください。
TL;DR for TinkerOS v2.0.5
(2017-11-24更新: 2017-09-07-raspbian-stretch に、TinkerOS v2.0.3-20170928のカーネル使用にて確認)
-
2017-09-07-raspbian-stretch.img
を焼く -
RPiにて起動して、軽く設定する(Wifiの設定とか)
-
以下実行
らずぱいにて実行# Run on RaspberryPi # For TinkerOS v2.0.3 (20170928) TINKER_FILES_URL=https://github.com/mt08xx/files/raw/master TINKER_BOOT=TinkerOS-20170928_v2.0.3_boot.tbz TINKER_ROOTLIB=TinkerOS-20170928_v2.0.3_rootfs-lib.tbz TINKER_UBOOT=TinkerOS-20170928_v2.0.3_idbloader.img wget ${TINKER_FILES_URL}/${TINKER_BOOT} -O - | bzcat | sudo tar xf - -C /boot/ wget ${TINKER_FILES_URL}/${TINKER_ROOTLIB} -O - | bzcat | sudo tar xf - -C /lib/ wget ${TINKER_FILES_URL}/${TINKER_UBOOT} sudo dd if=./${TINKER_UBOOT} of=/dev/mmcblk0 seek=64 conv=notrunc rm -f ./${TINKER_UBOOT} # rootfs指定 grep -q 'root=' /boot/extlinux/extlinux.conf || sudo sed -i -e 's@ rw @ root=/dev/mmcblk0p2 rw @' /boot/extlinux/extlinux.conf # Enable UART (お好みで) #sudo sed -i -e 's/console=tty1/console=ttyS1,115200n8/' /boot/extlinux/extlinux.conf # シャットダウン sudo shutdown -h now
-
SDカードを、TinkerBoardに差し替えて、起動する。
-
Enjoy!
以下、当時の環境での作業.
環境
- ASUS TinkerBoard
- microSD 2枚
- (その1) TinkerOS v1.9(beta) :
20170703-tinker-board-linaro-stretch-alip-v1.9
- (その2) Raspbian:
2017-07-05-raspbian-jessie
(ラズパイで一度起動して、初期設定をさせたほうがいいかも.)
- (その1) TinkerOS v1.9(beta) :
- USBのカードリーダ
- u-bootイメージ: 自前でビルド =>
https://github.com/mt08xx/files/raw/master/rk3288-uboot-image/idbloader.img- 参考: [メモ] ASUS TinkerBoard: カーネル・OSイメージのビルド / ベンチマーク で、u-bootを作る。
-
build/mk-uboot.sh rk3288-miniarm
最近のスクリプトは、rk3288-画必要っぽい
手順
-
下準備
-
microSD、2枚にそれぞれイメージを焼く。 Etcherとかで。
- (その1)
20170703-tinker-board-linaro-stretch-alip-v1.9.zip
- (その2)
2017-07-05-raspbian-jessie.zip
- (その1)
-
microSD(
TinkerOS
)をTinkerBoard本体のmicroSDスロットに挿す。 -
microSD(
Raspbian
)をUSBカードリーダへいれて、TinkerBoardのUSBポートへ挿す。 -
電源を入れる。(microUSBのACアダプタを挿す)
-
起動したら、User:
linaro
, パスワード:linaro
でログイン。 -
ターミナルを開く
左下のアイコンをクリックして、メニューを出したら、System Tools > LXTerminal -
USBカードリーダのmicroSDが、
/dev/sda
として認識されてて、/media/linaro/
あたりに自動でマウントされてる、、ハズ。linaro@linaro-alip:~$ mount | grep dev/sda /dev/sda2 on /media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38 type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2) /dev/sda1 on /media/linaro/boot type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2) linaro@linaro-alip:~$
-
-
TinkerBoard関係のファイルなどをコピーする。
-
/boot/
以下のファイルを、/media/linaro/boot/
へsudo cp -rv /boot/* /media/linaro/boot/
-
/lib/modules/4.4.16-00010-g0fce7eb-dirty/
フォルダを、/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/
へsudo cp -rv /lib/modules/4.4.16-00010-g0fce7eb-dirty /media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/
-
メモ:: ※ラズパイ上で...
ラズパイ上で、ファイルをダウンロードして、解凍
-
wget https://github.com/mt08xx/files/raw/master/TinkerBoard-kernel_4.4.16-00010-g0fce7eb-dirty_TinkerOS1.9Beta.tbz
sudo tar xvf ./TinkerBoard-kernel_4.4.16-00010-g0fce7eb-dirty_TinkerOS1.9Beta.tbz -C /
3. u-boot関連
先頭から64セクタ目(64*512 = 0x8000 バイト目)からなにやら書きこまないといけない。
<font color='red'>!!! `dd`を使うので気をつける !!!</font>
```bash:ubootを書き込む
# ファイルをダウンロード
wget https://github.com/mt08xx/files/raw/master/rk3288-uboot-image/idbloader.img
# ddで書き込む
sudo dd if=./idbloader.img of=/dev/sda seek=64 conv=notrunc
# シンク、5秒寝て、シャットダウン.
sync && sleep 5 && sudo shutdown -h now
- USBカードリーダのmicroSD(
Raspbian
)を、TinkerBoardに挿して、起動。
その他
-
Raspbianのイメージは、ラズパイで一度起動して、初期設定をさせたほうがいいかも。
↓は、マニュアルでやった。- パーティション拡張 (raspi-config から...)
- sshのキー作成 (
sudo dpkg-reconfigure openssh-server
)
-
ファイルコピー時のログ
linaro@linaro-alip:~$ sudo cp -rv /boot/* /media/linaro/boot/
'/boot/extlinux' -> '/media/linaro/boot/extlinux'
'/boot/extlinux/extlinux.conf' -> '/media/linaro/boot/extlinux/extlinux.conf'
'/boot/hw_intf.conf' -> '/media/linaro/boot/hw_intf.conf'
'/boot/rk3288-miniarm.dtb' -> '/media/linaro/boot/rk3288-miniarm.dtb'
'/boot/zImage' -> '/media/linaro/boot/zImage'
linaro@linaro-alip:~$ sudo cp -rv /lib/modules/4.4.16-00010-g0fce7eb-dirty /media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/
'/lib/modules/4.4.16-00010-g0fce7eb-dirty' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/source' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/source'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/build' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/build'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.order' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.order'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.builtin' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.builtin'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.dep' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.dep'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.dep.bin' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.dep.bin'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.alias' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.alias'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.alias.bin' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.alias.bin'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.softdep' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.softdep'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.symbols' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.symbols'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.symbols.bin' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.symbols.bin'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.builtin.bin' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.builtin.bin'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.devname' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/modules.devname'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/crypto' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/crypto'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/crypto/echainiv.ko' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/crypto/echainiv.ko'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/i2c' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/i2c'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/i2c/i2c-stub.ko' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/i2c/i2c-stub.ko'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless/rockchip_wlan' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless/rockchip_wlan'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless/rockchip_wlan/rtl8723bs' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless/rockchip_wlan/rtl8723bs'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless/rockchip_wlan/rtl8723bs/8723bs.ko' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/drivers/net/wireless/rockchip_wlan/rtl8723bs/8723bs.ko'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs/nfs' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs/nfs'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs/nfs/flexfilelayout' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs/nfs/flexfilelayout'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/net' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/net'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/net/netfilter' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/net/netfilter'
'/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/net/netfilter/xt_conntrack.ko' -> '/media/linaro/62ca0b6d-6291-4c40-b1fd-11bc291e4a38/lib/modules/4.4.16-00010-g0fce7eb-dirty/kernel/net/netfilter/xt_conntrack.ko'
linaro@linaro-alip:~$
----
## メモ
1. Bluetooth 周り
TinkerOS側から、`/usr/local/bin/rtk_hciattach`をコピーする.
```bash
## てぃんかー
pi@raspberrypi:~$ cat hciuart.service.tinkerboard
[Unit]
Description=Bluetooth HCI UART service
Before=bluetooth.service
After=dev-ttyS0.device
[Service]
Type=simple
ExecStart=/usr/local/bin/rtk_hciattach -n -s 115200 ttyS0 rtk_h5
[Install]
WantedBy=multi-user.target
## らずぱい
pi@raspberrypi:~$ cat hciuart.service.raspberrypi
[Unit]
Description=Configure Bluetooth Modems connected by UART
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
Before=bluetooth.service
Wants=dev-serial1.device
After=dev-serial1.device
[Service]
Type=forking
ExecStart=/usr/bin/btuart
[Install]
WantedBy=multi-user.target
pi@raspberrypi:~$
```