ref: https://github.com/darkenk/OkienkaTest
這一個人寫了一個 launcher app. 可以開啟多個 app, 變成 multi window
但是在 Android N 以後,好像就native support multi window 了:
https://developer.android.com/preview/features/multi-window.html?hl=zh-tw
然後 XDA 說,android 6 的 userdebug build, 開啟 developer mode, 就會多一個 multi window mode 的選項。
http://forum.xda-developers.com/android/general/guide-enable-multi-window-mode-android-t3121483
2016/7/28
2016/7/26
vi : set tab to 4 spaces and replace all
很麻煩,有些source code tab 用 4 個 space.
而不是 tab
所以...ref http://vim.wikia.com/wiki/Converting_tabs_to_spaces
如果要 vi 修改整個 source...
再下..
而不是 tab
所以...ref http://vim.wikia.com/wiki/Converting_tabs_to_spaces
:set tabstop=4 shiftwidth=4 expandtab一行做完。
如果要 vi 修改整個 source...
再下..
:set retab
2016/7/25
tinycap : support capture to stdout
https://github.com/tinyalsa/tinyalsa/pull/31/commits/5741cc04a4b20fd0997c8de6808c3a2557291d0d
這個人把 tinycap 加上從 stdout 輸出的功能。
大概就是,, stdout 時..
所以,增加了兩個 flag:
這個人把 tinycap 加上從 stdout 輸出的功能。
大概就是,, stdout 時..
- 不需要做 file header
- 不能 print message
所以,增加了兩個 flag:
- no_header : 不要做 file header
- prinfo : print message
2016/7/21
2016/7/18
static inline int hub_is_superspeed(struct usb_device *hdev) { return (hdev->descriptor.bDeviceProtocol == USB_HUB_PR_SS); }
ch11.h:
/* * Hub Device descriptor * USB Hub class device protocols */ #define USB_HUB_PR_FS 0 /* Full speed hub */ #define USB_HUB_PR_HS_NO_TT 0 /* Hi-speed hub without TT */ #define USB_HUB_PR_HS_SINGLE_TT 1 /* Hi-speed hub with single TT */ #define USB_HUB_PR_HS_MULTI_TT 2 /* Hi-speed hub with multiple TT */ #define USB_HUB_PR_SS 3 /* Super speed hub */
ch9.h:
hubdev->state
enum usb_device_state { /* NOTATTACHED isn't in the USB spec, and this state acts * the same as ATTACHED ... but it's clearer this way. */ USB_STATE_NOTATTACHED = 0, /* chapter 9 and authentication (wireless) device states */ USB_STATE_ATTACHED, USB_STATE_POWERED, /* wired */ USB_STATE_RECONNECTING, /* auth */ USB_STATE_UNAUTHENTICATED, /* auth */ USB_STATE_DEFAULT, /* limited function */ USB_STATE_ADDRESS, USB_STATE_CONFIGURED, /* most functions */ USB_STATE_SUSPENDED /* NOTE: there are actually four different SUSPENDED * states, returning to POWERED, DEFAULT, ADDRESS, or * CONFIGURED respectively when SOF tokens flow again. * At this level there's no difference between L1 and L2 * suspend states. (L2 being original USB 1.1 suspend.) */ };
2016/7/11
2016/7/6
buildroot for iMX6
ref:
就先 clone buildroot 下來...
.. 姊果 clone 不下來,所以只好download tar 下來解。
用.. 2015.05 的版本。
解開後,用 imx6 sabreauto 的config:
find 一下 freescale_*_defconfig
make 之前可以用 make menuconfig 看一下配置。kernel , uboot 版本之類。
make 後,就會去 download source, patch..
因為有過 proxy, 所以有些 git:// target 會 fetch failed.
這時候中斷,接上 no proxy 的 network, 再繼續 make
然後fetch tar ball 又要過 proxy,, 又接上 ethernet...
反覆..終於 build OK
build 好在: out/images
然後就 follow reference.
這個SD partition 配置是:
燒錄的動作略有不同。
這個 buildroot build 出來的 uboot 是 u-boot.imx, 不是 bin
所以直接 dd 到 1024 的地方...
接著 formate /dev/sdb1 為 vfat, copy uImage 和 imx6dl-sabreauto.dtb 過去。
這時候開機,已經可以看到開進 kernel,, 當然,開到一半就 kernel trap.. 因為 VFS: Unable to mount rootfs on unknown-block(179,2)
把 sdb2 format 成 ext4 後..
照著..
但是在 bootlog 中明明有看到..mmcblk0p2
..結果是... hardware 不一樣...
因為用 microSD, 所以沒有做 write protect detection, 所以 kernel 認為...
- https://community.nxp.com/docs/DOC-99218
- https://boundarydevices.com/buildroot-for-i-mx5-and-i-mx6/
- http://jordonwu.github.io/blog/2015/04/16/build-linux-for-imx6/
就先 clone buildroot 下來...
.. 姊果 clone 不下來,所以只好download tar 下來解。
用.. 2015.05 的版本。
解開後,用 imx6 sabreauto 的config:
find 一下 freescale_*_defconfig
$ make freescale_imx6dlsabreauto_defconfig $ make
make 之前可以用 make menuconfig 看一下配置。kernel , uboot 版本之類。
make 後,就會去 download source, patch..
因為有過 proxy, 所以有些 git:// target 會 fetch failed.
這時候中斷,接上 no proxy 的 network, 再繼續 make
然後fetch tar ball 又要過 proxy,, 又接上 ethernet...
反覆..終於 build OK
build 好在: out/images
然後就 follow reference.
這個SD partition 配置是:
- boot region : iMX 從 1024 開始 load bin, 這區域要放 uboot
- vfat partition : 第一個 partition, 要是 fat, 裡面是 uImage 和 dtb
- root fs : 第二個 partition, 是 EXT4, 就是 image: rootfs 的內容
燒錄的動作略有不同。
這個 buildroot build 出來的 uboot 是 u-boot.imx, 不是 bin
所以直接 dd 到 1024 的地方...
$ sudo dd if=u-boot.imx of=/dev/sdb bs=1k seek=1這樣開機已經可以看到 uboot message... 當然,boot to kernel failed
接著 formate /dev/sdb1 為 vfat, copy uImage 和 imx6dl-sabreauto.dtb 過去。
這時候開機,已經可以看到開進 kernel,, 當然,開到一半就 kernel trap.. 因為 VFS: Unable to mount rootfs on unknown-block(179,2)
把 sdb2 format 成 ext4 後..
照著..
# mount /dev/之後,一樣, Unable to mount,,/mnt # tar -C /mnt -xvf output/images/rootfs.tar # umount /mnt
但是在 bootlog 中明明有看到..mmcblk0p2
..結果是... hardware 不一樣...
因為用 microSD, 所以沒有做 write protect detection, 所以 kernel 認為...
mmcblk0: mmc0:59b4 USD 7,51GiB (ro)是 readonly,, 所以不能當作 root..
訂閱:
文章 (Atom)