第一次發現 Scratchbox 時,就看到它標榜著「CPU Transparency」的功能,可以讓 cross-compile
模擬成 native compile,又不會減低太多編譯上的效率。基於這點,這幾天很快樂的打算用它來建構一
個 ARM 的系統。

正如一般的程式第一課一樣,一定要寫一個哈囉世界來玩玩的,因此寫了一個哈囉世界,然後用 arm 的
toolchain 編了它,執行,咦,沒有預期中的哈囉世界,反而出現了:

mmap: permission denied

 

這三小?怎麼跟文件上面說的那麼輕鬆的狀況一點都不同?弄了一整個早上,才想到去 google 一下。
結果發現這個是 Ubuntu 8.04(8.04.1)搞出來的。解決方法很簡單,echo 數值到 kernel 參數中去
就可以了。

編輯 /etc/sysctl.conf,修改(加上)

vm.vdso_enabled = 0
vm.mmap_min_addr = 4096

 

 

再執行 sysctl -p 就可以了。

關於 mmap_min_addr 跟 vdso_enabled 的意思嘛,看了文件,還沒懂…

arrow
arrow
    全站熱搜

    zxlin 發表在 痞客邦 留言(2) 人氣()