2016年9月10日 星期六

Make Ubuntu kernel

Edit debian.master/changelog, add some string to distinguish from the original one:

linux (4.5.7-040507.201606100436-test15+23e5a3b) unstable; urgency=low
Add execution permission to build scripts:
chmod a+x debian/rules; chmod a+x debian/scripts/*; chmod a+x debian/scripts/misc/*;
"make oldconfig"
debian/rules updateconfigs
debian/scripts/misc/oldconfig ARCH
"make menuconfig":
fakeroot debian/rules clean
fakeroot debian/rules editconfigs #
Build:
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic
Build image with dbgsym:
fakeroot time debian/rules binary-headers binary-generic skipdbg=false
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
https://wiki.ubuntu.com/Kernel/MainlineBuilds


Ubuntu prebuilt kernel:
https://launchpad.net/~kernel-ppa/+archive/ubuntu/ppa
https://launchpad.net/~canonical-kernel-team/+archive/ubuntu/ppa
http://kernel.ubuntu.com/~kernel-ppa/mainline/
http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/




2016年9月8日 星期四

宜一荒野限定冷笑話/腦筋急轉彎

太陽爸和太陽媽,生了個太陽兒子,我們該說什麼祝賀詞恭喜他們? 生日快樂
那這樣總共有幾顆太陽呢?一顆,因為太陽他爸是漂流木,太陽他媽是母老虎,所以只有一顆陳太陽

https://youtu.be/MOI3etHEYRM


誰最會講笑話?酵母,因為會發酵
不可以對誰講笑話? 海浪,因為海浪笑了 會海嘯
(原始:在哪邊不可以講笑話?海邊,因為海笑(嘯)了很恐怖)

綿羊被剃毛後為什麼會睡不著呢?因為 失綿 了

2016年9月2日 星期五

Kernel Crash Dump

sudo apt install linux-crashdump

Verification
cat /proc/cmdline
dmesg | grep -i crash
kdump-config show

cat /proc/sys/kernel/sysrq

Active kdump
kdump-config load

Enabling various types of panics
To make Linux kernel to panic on different situations please use:

echo 1 > /proc/sys/kernel/hung_task_panic          # panic when hung task is detected
echo 1 > /proc/sys/kernel/panic_on_io_nmi          # panic on NMIs from I/O
echo 1 > /proc/sys/kernel/panic_on_oops            # panic on oops or kernel bug detection
echo 1 > /proc/sys/kernel/panic_on_unrecovered_nmi # panic on NMIs from memory or unknown
echo 1 > /proc/sys/kernel/softlockup_panic         # panic when soft lockups are detected
echo 1 > /proc/sys/vm/panic_on_oom                 # panic when out-of-memory happens

Test Crash kernel
sudo -s
echo c > /proc/sysrq-trigger

Get vmlinux with debug symbol
sudo tee /etc/apt/sources.list.d/ddebs.list << EOF
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)          main restricted universe multiverse
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-updates  main restricted universe multiverse
deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-proposed main restricted universe multiverse
EOF

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01
sudo apt-get update
sudo apt-get install linux-image-$(uname -r)-dbgsym

Inspecting the crash dump using crash

Debug kernel: /usr/lib/debug/boot/
Crash dump: /var/crash/

crash <debug kernel> <crash dump>


Kernel/CrashdumpRecipe - Ubuntu Wikihttps://wiki.ubuntu.com/Kernel/CrashdumpRecipe

Kernel Crash Dump
https://help.ubuntu.com/lts/serverguide/kernel-crash-dump.html

2016年9月1日 星期四

Random abnormal high CPU sys usage related to timer

Test files and logs are available in GitHub
https://github.com/mkl0301/abnormal-cpu-load


20160910 update:
Up to now I still don't know clearly whether this is simply a display issue, or something is actually being executed.
  1. Even with the issue happening, the application seems works normally.
  2. But with previous perf report, the data sampling rate when the issue happen is higher than the rate when issue not happen.
I happened to found that on v3.13, enabling CONFIG_CONTEXT_TRACKING_FORCE can fix this issue. But unfortunately the kernel I'm using is 3.4, which doesn't have the context tracking feature added, so the hunting keeps on....

Forcing context tracking only works until 4.5, doing so on 4.6 and after still see the issue.



Random abnormal high CPU sys usage related to timer
https://lkml.org/lkml/2016/8/26/383

We were having issue with our userspace application which
__sometimes__ result in high CPU sys usage at each execution. The high
sys CPU usage persist until the application is killed.

We simplified the application to just creating a timer and its handler
then does nothing, but looping and sleeping for the timer to be
triggered. With top, the CPU that running the application usually
takes almost 0% for sys usage. But sometimes it will occupy certain
amount of sys usage, up to 100% at most of the time on my embedded
device.

On my laptop, Intel Core i5-4200U, running Ubuntu 14.02.2, Linux
3.13.0-45-generic and 4.4.0-34-generic, the issue can be reproduced
with lower sys usage (7~50%). The same can be reproduced with
buildroot+vanilla kernel 4.7 and 3.13.

Restart the application could temporarily fix the the issue, but there
are chances to happen again.

/proc/timer_stats, /proc/interrupts, and perf didn't show any abnormal value or useful clue.
Comparing the good and fail log got the following
  • The /proc/timer_stats is almost the same, but perf events shows extra softirq/timer events.
  • The perf sample of the failed case is much more than the good case, but the ratio of the sampled functions are basically the same.


One issue is found that seems related, but no further action.

Keystone II Linux: Random High CPU usage - userspace application using 1 full core - Linux forum - Linux - TI E2E Community
http://e2e.ti.com/support/embedded/linux/f/354/p/433791/1553204



The Documentation/cpu-load.txt discussed a situation that the cpu load reported by top might underestimated. The C code is very alike to ours. But it's discussing a different topic.

Documentation/cpu-load.txt
https://www.kernel.org/doc/Documentation/cpu-load.txt
https://lkml.org/lkml/2007/2/12/6




Why you should avoid using SIGALRM for timer – Linux, Embedded, Android and Security blog
https://nativeguru.wordpress.com/2015/02/19/why-you-should-avoid-using-sigalrm-for-timer/

Linux timer | 菜鳥的三年成長史
https://wirelessr.gitbooks.io/working-life/content/linux_timer.html
The best timer | 菜鳥的三年成長史
https://wirelessr.gitbooks.io/working-life/content/the_best_timer.html


Linux Timers | Blog | Upvoid
https://upvoid.com/devblog/2014/05/linux-timers/

kernel debug


Linux kernel tracing
http://www.slideshare.net/vh21/linux-kernel-tracing

Ktap A New Scripting Dynamic Tracing Tool For Linux
http://events.linuxfoundation.org/sites/events/files/lcjpcojp13_zhangwei.pdf

Using GDB to Help You Read Linux Kernel Code without Running It - Google Docs
https://docs.google.com/document/d/1w1nPmCLpeRN3kEYglzHwozhWXY0ddT9oe6JCZocsPNE/edit#heading=h.8bskh6ejh6u7

2016年8月28日 星期日

一條河

【第二屆十大「節」出綠繪本.得獎作品賞】第一名:《海邊的診所》 - 環境通訊網
http://enw.e-info.org.tw/content/1949
【第二屆十大「節」出綠繪本.得獎作品賞】海大富獎:《海龜的願望》 - 環境通訊網
http://enw.e-info.org.tw/content/1954
The Survival of the Sea Turtle - YouTube
https://youtu.be/t-KmQ6pGxg4
【第二屆十大「節」出綠繪本.得獎作品賞】佳作:《不要的垃圾》 - 環境通訊網
http://enw.e-info.org.tw/content/1953
海邊什麼垃圾最多? - 台灣環境資訊協會
http://teia.tw/zh-hant/event/story/6974
世界烏龜日 淨灘垃圾化身繽紛大海龜 - 環境通訊網
http://enw.e-info.org.tw/content/2832
(18) 還地球幸福的笑臉 - 【分享30萬次,捐出30萬元!金曲歌后彭佳慧用音樂幫助小海龜】...
https://www.facebook.com/protect.earth.ocean/videos/642067719285206/

【賞讀.綠繪本】野溪整型記 | 台灣環境資訊協會-環境資訊中心
http://e-info.org.tw/node/112255

塑膠袋流浪記
https://youtu.be/eXoozwXK6RE

單元名稱:從山裡逃出來/垃圾,丟啊!
http://ee.tc.edu.tw/06edu%20popularize/99/picture%20book/98/teaching%20plan/book-1.pdf

海洋科學繪本-你為什麼住這裡?
https://youtu.be/eMAo7iQAWPQ

 

2016年8月25日 星期四

FATAL: kernel too old

I used buildroot to generate bzImage and rootfs.cpio.gz, but always get "FATAL: kernel too old", no matter how I config the BR2_KERNEL_HEADERS_XXX and BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_XXX.

Google said the glibc need --enable-kernel, but buildroot already gave that. Then I found that my 3.13 kernel include/linux/version.h has LINUX_VERSION_CODE configured to something like 3.4....

I'm using Linux kernel checkout by git. It seems that the include/linux/version.h was generated when I were using 3.4, which I don't even remember when.

So if you got this error, and happen to be using linux source checkout by git, maybe try

git clean -xfd
Hopes this save your day, cause I've spent mine on this stupid reason. sigh.

2016年8月24日 星期三

2016年8月8日 星期一

Linux perf "irq/sec"

perf top has a value "irq/sec"

linux/tools/perf/builtin-top.c, perf_top__mmap_read_idx(), top->samples is increased whenever read a sample.

linux/tools/perf/util/top.c, perf_top__header_snprintf(), the irq/sec is the value of samples_per_sec, which is calculated by:
        float samples_per_sec = top->samples / top->delay_secs;

Therefor, the irq/sec is, sample rate. Period.

2016年7月31日 星期日

虹光漆 筆記


刮除壁癌
有些地方很好刮除,但有些地方很奸詐,沒水不會浮,有水就浮給你看,後來我都再刷一層水檢查有沒有浮起的地方一起刮除。

防壁癌漆

批土


底漆 白漆兩層
虹牌450水性水泥漆 白色 平光 與 有光 1:1混合,加10~20%水混合,油漆刷沾上去要有點糊,刷兩層。



色漆3-4層

德寶 環保水性木器塗料 水性環保75%平光面漆 1L
奇美油漆行

易耕 溼水彩
黃,藍綠,綠,黃綠
牛頓 要用 透明水彩

漆與水的比例(顏料算水)漆:水

第一層
一般顏色以 1:9,藍色比較重1:13。
塗到邊緣時要漸層,方便下次或下個人接續,才不會在相接處形成明顯的線條

第二層 1:6
第三層 1:4

四年級
第一層淡金黃,第二層濃金黃,第三層藍綠,第四層黃綠色做漸層
二年級
淡橙紅/橙紅/橙黃

暖色要先上

橘 先上橙紅 再上橙黃
綠 先上黃 再上藍綠


色料三原色 | .✣Miffy✣騎大象✣.
http://loveaesthetic.blogspot.tw/2007/08/johannes-itten-1888-19671961.html

透明水彩六大調色觀念
http://artprince.shop2000.com.tw/edm/3870

2016年6月21日 星期二

Linux: How to find the device driver used for a device?

Linux: How to find the device driver used for a device?
http://unix.stackexchange.com/questions/41817/linux-how-to-find-the-device-driver-used-for-a-device

#!/bin/bash
for f in /sys/class/net/*; do
    dev=$(basename $f)
    driver=$(readlink $f/device/driver/module)
    if [ $driver ]; then
        driver=$(basename $driver)
    fi
    addr=$(cat $f/address)
    operstate=$(cat $f/operstate)
    printf "%10s [%s]: %10s (%s)\n" "$dev" "$addr" "$driver" "$operstate"
done


2016年6月12日 星期日

[git-svn] customized branch checkout

To clone the SVN repo that is not standard layout, only part of the branches are required.

Edit .git/config:

[svn-remote "svn"]
        url = http://blabla.com/svn/
        fetch = foo1/bar1:refs/remotes/svn/bar1
        branches = foo2/{bar2,bar3, bar4}:refs/remotes/svn/*
        branches = foo3/{bar5}:refs/remotes/svn/*

Checkout only certain branches with git-svn · GitHub
https://gist.github.com/trodrigues/1023167

2016年4月29日 星期五

不專業碳排計算

使用免洗杯/盤/碗/吸管 0.02kg/個
購買瓶裝飲料0.295kg/罐
塑膠袋0.0001kg/個
購買進口食品/蔬果(以每公斤蔬果運送1000km)0.02kg
自行開車0.22kg/km
搭電梯0.22kg/樓
開冷/暖氣1.4kg/小時
使用電腦0.156kg/小時



種樹減碳是正途 - stanleyhsu 的部落格 - udn部落格
http://blog.udn.com/stanleyhsu/13535052

水黃皮固碳能力
400顆/公頃
43.99T/年公頃
110kg/顆年
行政院環保署 台灣產品碳足跡
https://cfp.epa.gov.tw/CARBON/EZCFM/FUNCTION/PLATFORMINFO/FLACTIVITY/CARBONTIPS.ASPX
每天少開一小時冷氣。(以冷氣功率220W計算) 1.40kg
[商業交流] - 碳管理趨勢概述_以食品碳足跡為例(FOR 銘傳).pdf
http://gad.mcu.edu.tw/sites/default/files/u3/%E7%A2%B3%E7%AE%A1%E7%90%86%E8%B6%A8%E5%8B%A2%E6%A6%82%E8%BF%B0_%E4%BB%A5%E9%A3%9F%E5%93%81%E7%A2%B3%E8%B6%B3%E8%B7%A1%E7%82%BA%E4%BE%8B%28FOR%20%E9%8A%98%E5%82%B3%29.pdf
運具
kgCO2/\公噸-公里
航空1.58
卡車0.27
海運0.02
行政院環保署 台灣產品碳足跡
https://cfp.epa.gov.tw/CARBON/EZCFM/FUNCTION/PLATFORMINFO/FLABELPRODUCT/FLFOREIGNPRODUCTEMISSIONS.ASPX
Average(360,240,170,360,240,500,150,340)/1000=0.295kg
http://www.candcprinting.com/upload/file/green/GreenNewsletter201004_tch.pdf
10對一次性筷子,碳排放量為0.2千克
一個塑膠袋碳排放量為0.1克。
電梯每上下一層,碳排放量為0.218千克
少搭電梯=少開車? | 台灣環境資訊協會-環境資訊中心 
http://e-info.org.tw/node/37587
搭乘電梯上下一層樓會排放0.218kg的CO2
汽車的碳排放係數0.22kg/km



2016年4月26日 星期二

GIT newline configuration

Usually I prefer to disable autocrlf:

git config --global core.autocrlf false

When you see any of the following message, it means git autocrlf is working:
warning: CRLF will be replaced by LF in XXXXX.
The file will have its original line endings in your working directory.

fatal: CRLF would be replaced by LF in XXXXX.


Dealing with line endings - User Documentation
https://help.github.com/articles/dealing-with-line-endings/

Help

core.safecrlf

    If true, makes Git check if converting CRLF is reversible when end-of-line conversion is active. Git will verify if a command modifies a file in the work tree either directly or indirectly. For example, committing a file followed by checking out the same file should yield the original file in the work tree. If this is not the case for the current setting of core.autocrlf, Git will reject the file. The variable can be set to "warn", in which case Git will only warn about an irreversible conversion but continue the operation.

    CRLF conversion bears a slight chance of corrupting data. When it is enabled, Git will convert CRLF to LF during commit and LF to CRLF during checkout. A file that contains a mixture of LF and CRLF before the commit cannot be recreated by Git. For text files this is the right thing to do: it corrects line endings such that we have only LF line endings in the repository. But for binary files that are accidentally classified as text the conversion can corrupt data.

    If you recognize such corruption early you can easily fix it by setting the conversion type explicitly in .gitattributes. Right after committing you still have the original file in your work tree and this file is not yet corrupted. You can explicitly tell Git that this file is binary and Git will handle the file appropriately.

    Unfortunately, the desired effect of cleaning up text files with mixed line endings and the undesired effect of corrupting binary files cannot be distinguished. In both cases CRLFs are removed in an irreversible way. For text files this is the right thing to do because CRLFs are line endings, while for binary files converting CRLFs corrupts data.

    Note, this safety check does not mean that a checkout will generate a file identical to the original file for a different setting of core.eol and core.autocrlf, but only for the current one. For example, a text file with LF would be accepted with core.eol=lf and could later be checked out with core.eol=crlf, in which case the resulting file would contain CRLF, although the original file contained LF. However, in both work trees the line endings would be consistent, that is either all LF or all CRLF, but never mixed. A file with mixed line endings would be reported by the core.safecrlf mechanism.

core.autocrlf

    Setting this variable to "true" is almost the same as setting the text attribute to "auto" on all files except that text files are not guaranteed to be normalized: files that contain CRLF in the repository will not be touched. Use this setting if you want to have CRLF line endings in your working directory even though the repository does not have normalized line endings. This variable can be set to input, in which case no output conversion is performed.

Ubuntu 16.04 error: undefined reference to `create_module'


Building module-init-tools-3.2 in Ubuntu16.04 failed:
lsmod.o: In function `try_old_version':
./module-init-tools-3.2/backwards_compat.c:56: undefined reference to `create_module'
This is because 16.04 uses GLIBC 2.23 which doesn't export the obsoleted API create_module.

create_module(2) - Linux manual page
http://man7.org/linux/man-pages/man2/create_module.2.html
This obsolete system call is not supported by glibc. No declaration is provided in glibc headers, but, through a quirk of history, glibc versions before 2.23 did export an ABI for this system call. Therefore, in order to employ this system call, it was sufficient to manually declare the interface in your code; alternatively, you could invoke the system call using syscall(2).
Xenial (16.04) : glibc package : Ubuntu
https://launchpad.net/ubuntu/xenial/+source/glibc
glibc (......) version: 2.23-0ubuntu3

FIX:
Enable CONFIG_NO_BACKWARDS_COMPAT for module-init-tools-3.2.

2016年4月25日 星期一

kernel failed building kernel on Ubuntu 16.04: Can't use 'defined(@array)'

Error while building kernel with Ubuntu16.04:

  TIMEC kernel/timeconst.h
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
Fixed by:
Linux Kernel - [PATCH 1/5] kbuild: remove deprecated use of defined in timeconst.pl
http://linux-kernel.2935.n7.nabble.com/PATCH-1-5-kbuild-remove-deprecated-use-of-defined-in-timeconst-pl-td556009.html

Problem compiling Linux Kernel linux-3.0.35-fsimx6-V2.0 - armStoneA9 - Freescale i.mx6 - F&S Support Forum
http://forum.fs-net.de/index.php/Thread/3959-Problem-compiling-Linux-Kernel-linux-3-0-35-fsimx6-V2-0/
It seems there is a problem with Perl v5.22.0.



2016年4月19日 星期二

外來種



紅色生態劊子手:美國螯蝦 | 台灣環境資訊協會-環境資訊中心
http://e-info.org.tw/node/86945

福壽螺入侵台灣的事件 @ 真珠美人魚 :: 隨意窩 Xuite日誌
http://blog.xuite.net/dkes61121/61121/23900385-%E7%A6%8F%E5%A3%BD%E8%9E%BA%E5%85%A5%E4%BE%B5%E5%8F%B0%E7%81%A3%E7%9A%84%E4%BA%8B%E4%BB%B6

臺中區農業改良場 - 福壽螺引進的省思
http://www.tdais.gov.tw/show_monthly.php?id=tdais_tdais_edit_20080313015242





銅錢草
http://kplant.biodiv.tw/%E9%8A%85%E9%8C%A2%E8%8D%89/%E9%8A%85%E9%8C%A2%E8%8D%89.htm

二子坪濕地清出150籃3大袋外來種 渣打志工戰果豐 | 台灣環境資訊協會-環境資訊中心
http://e-info.org.tw/node/43718

荒野保護協會雙連埤環境教育基地: 雙連埤環境教育基地與外來種2013.02.07
http://shuanglianpi.sow.org.tw/2013/02/20130207.html

銅錢草- 台灣Wiki
http://www.twword.com/wiki/%E9%8A%85%E9%8C%A2%E8%8D%89







2016年4月14日 星期四

Setupt PIC32 Development environment


PIC32 Development on Mac OS X and Linux
http://www.paintyourdragon.com/uc/osxpic32/index.html

Download the required images:
http://www.paintyourdragon.com/uc/osxpic32/c32-build.tar.gz
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABC32-v105-Evaluation.exe
http://ww1.microchip.com/downloads/en/DeviceDoc/pic32-microchip-release-1-05-20090302-source.tar.gz
http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz


Ubuntu 14.04.2+c32-build = not work~
After the following patch:
http://www.microchip.com/forums/m416697.aspx

But still have issue on bison 3.0 (Ubuntu 14.04). The general solution to this is to downgrade to bison 2.7.  I don't want to try this on my working computer.


VirtualBox+Ubuntu8.04+c32-build = work!!
I setup a VirtualBox with Ubuntu8.04.
https://help.ubuntu.com/community/EOLUpgrades
Edit /etc/apt/sources.list, replace all the server with "old-releases.ubuntu.com".
Then install the required package:

apt-get update
apt-get install bison cpp flex g++ gcc gettext  patch patchutils
libncurses5-dev  automake  libtool build-essential libncurses5-dev
zlib1g-dev gawk ccache gettext libssl-dev xsltproc g++ zlib1g-dev gawk
libncurses5-dev
apt-get install wine libusb-dev
apt-get install openssh-server
Then I could complete the procedure without problem.

Ubuntu 14.04.2 + Latest MPLab X IDE + My project

MPLAB- XC Compilers | Microchip Technology Inc.
http://www.microchip.com/mplab/compilers

Get Started with MPLAB® X IDE and Microchip Tools - Developer Help
http://microchip.wikidot.com/tls0101:start


Install the following:

Install MPLAB® X IDE - Developer Help
http://microchip.wikidot.com/install:mplabx

http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABX-v3.26-linux-installer.tar
http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.40-full-install-linux-installer.run

http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.31-linux-installer.run.tar

Execute the following to run MPLAB X IDE:
/opt/microchip/mplabx/v3.26/mplab_ide/bin/mplab_ide

I installed the JRE in /usr/java. (ref here)

Windows 8 + Latest MPLab X IDE + My project
Install the following:
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABX-v3.26-windows-installer.exe
http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.40-full-install-windows-installer.exe
(It seems XC32 r1.4.0 has known issues, multiple definition of `_atexitptr')
http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.31-windows-installer.exe
http://ww1.microchip.com/downloads/en/DeviceDoc/harmony_v1_07_01_windows_installer.exe

MPLAB® Harmony Configurator (MHC) Installation ...
http://microchip.wikidot.com/harmony:mhc-installation

(2010/12/27) GnuWin32
http://gnuwin32.sourceforge.net/
http://gnuwin32.sourceforge.net/packages.html

Download and install the following to C:\Program Files (x86)\Microchip\MPLABX\v3.26\gnuBins:
http://iweb.dl.sourceforge.net/project/gnuwin32/sed/4.2.1/sed-4.2.1-setup.exe
http://nchc.dl.sourceforge.net/project/gnuwin32/grep/2.5.1-2/grep-2.5.1-2-bin.exe   http://heanet.dl.sourceforge.net/project/win32svn/1.8.15/Setup-Subversion-1.8.15.msi

(2011/03/17) win-bash - bash port for Windows
http://win-bash.sourceforge.net/
http://nchc.dl.sourceforge.net/project/win-bash/shell-complete/latest/shell.w32-ix86.zip
ONLY copy the sh.exe to C:\Program Files (x86)\Microchip\MPLABX\v3.26\gnuBins\GnuWin32\bin.

I have a Chinese Windows 8, but it seems MPLAB X doesn't support Chinese and the error message during building project become Chinese and not readable on MPLAB X. I tried changing the system language but not work.

This could be workaround by removing the locale C:\Program Files (x86)\Microchip\MPLABX\v3.26\gnuBins\GnuWin32\share\locale.



Changes to port a project between Windows and Linux MPLAB
  1. Windows executables has suffix .exe, e.g. date.exe, while Linux doesn't
  2. Windows path separate with slash "\", while Linux with backslash"/". Sometimes file path might be written in Windows form, e.g in nbproject/configurations.xml:
    ..\..\harmony\framework\driver\ethmac\src\drv_ethmac_local.h
    Change to:
    ../../harmony/framework/driver/ethmac/src/drv_ethmac_local.h
  3. Windows "make" can expand wildcard in double quote, while Linux doesn't. For example, Linux cannot handle the following:
    cp -r "./foo/*" "./foobar"
    I have double quote on every parameter and even some command, it cause problem when there are wildcard in it.
  4. Windows "make" seems require additional escape char, while Linux doesn't. For example:
    sed -i '/<\\/head>/ i\\' "header.inc"





http://www.paintyourdragon.com/uc/ubw32/index.html

https://www.microchip.com/development-tools

http://microchip.wikidot.com/tls0101:start

http://microchip.wikidot.com/tls0101:get-compiler

http://www.microchip.com/mplab/compilers

http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABC32-v105-Evaluation.exe

http://ww1.microchip.com/downloads/en/DeviceDoc/pic32-microchip-release-1-05-20090302-source.tar.gz

http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz

http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABC32-v105-Upgrade.exe

http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABX-v3.26-linux-installer.tar

2016年4月7日 星期四

Priority Inversion in Linux

2016.04.08
Latest vanilla kernel: 4.5, 4.6-rc2
Used kernel: 3.4.27

Priority inversion - Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/Priority_inversion
Introduction to Priority Inversion | Embedded
http://www.embedded.com/electronics-blogs/beginner-s-corner/4023947/Introduction-to-Priority-Inversion

20060303-Priority inheritance in the kernel [LWN.net]
https://lwn.net/Articles/178253/

20140307-RT PREEMPT HOWTO - RTwiki
https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
Index of /pub/linux/kernel/projects/rt
https://www.kernel.org/pub/linux/kernel/projects/rt/

Preemption (computing) - Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/Timeslicing
https://en.wikipedia.org/wiki/Preemption_%28computing%29#Time_slice