Re: [問題] Kernel3_10 mmap

看板LinuxDev作者時間10年前 (2014/12/23 19:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《willy01 (網洋中的一條狗)》之銘言: : 大家好~ : 想要請問一下 最近在build android5.0 搭配 新的3.10 kernel內核 : 之前在舊個Android4.3 前輩有寫份tool : 主要是用mmap把底層的physical address映射到user space : 讓AP程式可以存取到hardware 存到記憶體的值 (類似driver) : 主要code大概為 : fd = open("/dev/mem",O_RDWR | O_SYNC); : map_address = mmap( (caddr_t)0 , size, : PROT_READ|PROT_WRITE,MAP_SHARED,fd,(off_t)phy_base_address ); : 其中 : size=40* getpagesize(); //getpagesize=4096 byte : phy_base_address= 0xd80a0000 ; // GPU mmio base : 在之前的版本可以正常work 但換到 ndroid5.0 搭配 新的3.10 kernel內核 : 則會回傳errno 22 (invalid argument) : 但確認過兩個size和phy_base_address的都是為 pagesize的整數倍 : 一開始以為是SELINUX的權限 使AP不能用MMAP存取記憶體 : 但關掉SELINUX後 好像還是無法存取 : 網路上有看到一個說法是說 : 新的內核對 /dev/mem做了一些限制 導致不能映射了 : 不知有無有經驗的高手 : 可以提供一個大概方向 讓我可以繼續解掉這問題? : 非常感謝大家看完 STRICT_DEVMEM=n 如果是X86的話,要在加 X86_PAT=n -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 68.98.37.225 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1419334479.A.E10.html
文章代碼(AID): #1KcLDFuG (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1KcLDFuG (LinuxDev)