linux 的封存

Note: Firefly-RK3288 with Linux update

Posted in RK3288 with tags , , on 2017 年 08 月 24 日 by Kun-Yi

use linux tool (rkdeveloptool) to update image into EMMC, remind the device need force boot on maskrom mode.

see here , it describe how to enforce let device into maskrom mode, it just break EMMC function, let bootrom stay in maskrom

廣告

Note: Porting Boot2Qt to Customer board

Posted in Linux with tags , , , on 2017 年 01 月 16 日 by Kun-Yi

因為最近公司沒有特別指定讓我作啥 但是有些來自PM/Sales 的訊息是有Qt5 的需求, 做了一年的Yocto project 終於對Embedded Linux 算是也有大略認識, 然後自己先從NXP/Freescale i.MX6 跟 Intel Apollo lake 的Yocto BSP 玩起, 先把Qt5 在上述廠商提供的YoctoBSP 測試一遍, 掌握了一些要注意的基本事項後 基本上就是Graphics/Input subsystems
在X Windows 上還測過 MatchBox 換成 LXDE 之後應該會試著把LxQt 與 Meta

其他的Graphics backend 像是 Wayland/XWayland/FB 也都基本測一下

然後開始看寫Qt Application 的SDK 確注意到 Qt有個 QT Device creation 的商業版本, 本來看到是商業版本不太想管了, 但是卻看到 網站上的一篇 Building Your Own Embedded Linux Image 發現它是一個OpenEmbedded recipes  而且預先支援的的版子就有我手上同一系列的版本 就好奇研究一下, 基本上跟porting 一個Yocto bsp 到自訂的版子上沒啥差別, 因為基本上Qt5 要有的就是那個Graphics backend 基本上只要有OpenGL ES 2 含以後版本的支援, 應該不是難事

下面是我fork 官網的boot2qt 去加上我公司自己的一塊版本 imx6dltinto 的測試版本, 基本上我只改了kernel/bootloader 指向我放在同一個帳號上的 repositories 其他照舊, kernel/bootloader 用的是NXP/Freescale 最後release 的 4.1.15_v2.0.1 patch

https://github.com/UBIQCONN/meta-boot2qt/commits/krogoth

基本上參考Qt網站上的那篇文章 把 boot2qt 從安裝 Device Creation 改成 底下

git clone https://github.com/UBIQCONN/meta-boot2qt boot2qt
cd boot2qt
b2qt-init-build-env help

其他步驟相同

Note: Freescale 3.14.28-1.0.1 release kernel & u-boot

Posted in Linux, 未分類 with tags , on 2015 年 11 月 19 日 by Kun-Yi

一開始的工作應該是改這兩個kernel & u-boot東西 還要看一下怎樣做才正確

Bitbake 的 Recipes

  • ./yocto_3.14.28-1.0.1/sources/meta-fsl-bsp-release/imx/meta-fsl-arm/recipes-bsp/u-boot/u-boot-imx_2014.04.bb
  • ./yocto_3.14.28-1.0.1/sources/meta-fsl-bsp-release/imx/meta-fsl-arm/recipes-kernel/linux/linux-imx_3.14.28.bb

透過 Recipes 會把Source code 解壓縮或是透過git clone/pull 的方式弄到下面對應的build folder 裡面去,主要看 Recipes 的寫法

  • ./yocto_3.14.28-1.01/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/u-boot-imx/2014.04-r0/git
  • ./yocto_3.14.28-1.01/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git

 

Tips: Yocto project how to speed build time

Posted in Linux, 未分類 with tags , on 2015 年 11 月 19 日 by Kun-Yi

這篇是從 Embedded Linux Projects Using Yocto Project Cookbook 上看來的, 今年爽了半年沒上班,週一終於認命回辦公室上班了。老闆指派的任務就是看一下i.mx6 系列的 linux 環境,而且已經有新同事接手,我可以慢慢來:P

在書上第四頁,就有提到如果Build time 對你而言很重要,可以透過下列方式提升(不過我想這點對大家都很重要才是,畢竟誰也不想要花太多時間等待,尤其是老闆、PM與客戶們更是如此)

  1. 第一步指定Build 目錄使用獨立的檔案系統分割區,甚至是獨立速度夠快的磁碟機
  2. 接著這在這個分割區上使用ext4形式的檔案系統,但是關掉日誌功能,了解斷電等因素會造成資料遺失的風險
  3. 掛上這個檔案系統的時,使用下面的參數,關掉存取檔案的時間戳記,關掉寫入防護措施,延遲寫入時間
    noatime, barrier=0, commit=6000  # to edit /etc/fstab
  4. 不要使用網路磁碟機

要注意的是因為2, 3的步驟會造成ext4 檔案系統的不穩定與失去可靠度,不過因為build folder 是很簡單可以重新產生的暫時性資料所以不需要擔心這件事情

ref. https://notesfromheck.wordpress.com/2012/09/01/mount-options-for-a-faster-ext4/

Note: To disable Middle button of Mouse on Ubuntu

Posted in Linux with tags , , on 2013 年 08 月 02 日 by Kun-Yi
因為在Ubuntu 上面GTK Default 支援一個很討厭的Feature 就是用 Mouse 中間當Paste 鍵, 但是常常在Scrolling 時, 會誤觸 產生不必要的困擾
所以就找了找 Disable 這個 Feature 的方法
有說要改 GTK libarary code 對我來說實在太麻煩了
後來找到用 xinput set-button-map 的簡單方法
先用 xinput list 找出需要設定的滑鼠, 如下
kunyi@kunyi-ThinkPad-X220:~$ xinput list
⎡ Virtual core pointer                    id=2[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              id=4[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v2.0id=10[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v2.0id=11[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   id=16[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              id=14[slave  pointer  (2)]
⎣ Virtual core keyboard                   id=3[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             id=5[slave  keyboard (3)]
    ↳ Power Button                            id=6[slave  keyboard (3)]
    ↳ Video Bus                               id=7[slave  keyboard (3)]
    ↳ Sleep Button                            id=8[slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v2.0id=9[slave  keyboard (3)]
    ↳ Integrated Camera                       id=12[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            id=13[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  id=15[slave  keyboard (3)]
上面是 pointer 是指標裝置 我用的是 Microsoft Microsoft® Nano Transceiver v2.0
可以看到 id=10 & id=11, 但是這個因為是 USB Device 所以id 並不會一定每次開機都是 10 & 11 會隨著我的 USB bus 有所變化
但是總不能每天改 script吧!
所幸 有pipe & grep & xargs 幫我解決這個問題, 透過下面的指令串就可以自動把id 抓出來, 然後執行 xinput set-button-map
應該有更簡單的寫法不過我試不出來 >_<
 xinput list | grep -Po ‘Microsoft.*pointer’ | grep -Po ‘id=\K[0-9]+’ | xargs -n 1 -I @ xinput set-button-map @ 1 0 3