lan8720网卡mac地址如何固定android4.0(linux2.6.34)

colwer 2013-06-22 02:50:08
android4.0(linux2.6.34)设备有以太网,网卡芯片为lan8720a,能正常上网,但每次重启后,mac地址变化(驱动中的mac地址是随机的),由于要通过mac地址来控件设备,所以每台设备只能有一个固定mac,并且两台设备的mac不能一样.
问:
1. lan8720能保存mac地址吗?
2. linux驱动中能读取一个配置文件吗(比如/etc/mac.conf),每次开机来读取这个文件。但一个是内核空间,一个是用户空间,不知能实现否。
或者有其它方法实现吗?
...全文
495 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
colwer 2013-06-22
  • 打赏
  • 举报
回复
引用 5 楼 guoyoulei520 的回复:
你应该有源码环境,具体system权限的话还是不能执行吗?如果不行就按上面方法
设备已有su权限,但是还是不成功。 请问下“apk好像没有权限执行etcfg eth0 hwaddr xxx。你把这个命令做成服务放在init.rc里面,apk通过ctrl.start来启动这个服务吧 ”这个是如何实现的?
凉凉二点凉 2013-06-22
  • 打赏
  • 举报
回复
你应该有源码环境,具体system权限的话还是不能执行吗?如果不行就按上面方法
凉凉二点凉 2013-06-22
  • 打赏
  • 举报
回复
引用 3 楼 colwer 的回复:
[quote=引用 2 楼 colwer 的回复:] [quote=引用 1 楼 guoyoulei520 的回复:] [quote=引用 楼主 colwer 的回复:] android4.0(linux2.6.34)设备有以太网,网卡芯片为lan8720a,能正常上网,但每次重启后,mac地址变化(驱动中的mac地址是随机的),由于要通过mac地址来控件设备,所以每台设备只能有一个固定mac,并且两台设备的mac不能一样. 问: 1. lan8720能保存mac地址吗? 2. linux驱动中能读取一个配置文件吗(比如/etc/mac.conf),每次开机来读取这个文件。但一个是内核空间,一个你是驱动的?用户空间和内核空间的话你用ioctl不能交互吗
是用户空间,不知能实现否。 或者有其它方法实现吗?[/quote] 是驱动的,如果不在驱动中解决那最好了。 看来只有用笨办法了,串口中netcfg eth0 hwaddr xxx 然后再做成apk,让用户自己去定义吧。 这个方法问题是android应用中如何去执行命令,

try{
       	 	process = Runtime.getRuntime().exec("/system/xbin/su"); 	//ran as root
       	 	outstr = new DataOutputStream(process.getOutputStream());
       	 	instr = new DataInputStream(process.getInputStream());
            outstr.writeBytes("/system/bin/chmod 777 /dev/i2c-0" + " \n");   //modify the device properties 
            outstr.writeBytes(" exit \n");
            outstr.flush();
            process.waitFor();
       }catch(Exception e){
       		System.out.println("set mac error!");
       }
试了一下子,运行命令不成功,不知道是root的问题还是什么问题[/quote] 代码贴错了[/quote] apk好像没有权限执行etcfg eth0 hwaddr xxx。你把这个命令做成服务放在init.rc里面,apk通过ctrl.start来启动这个服务吧
colwer 2013-06-22
  • 打赏
  • 举报
回复
引用 2 楼 colwer 的回复:
[quote=引用 1 楼 guoyoulei520 的回复:] [quote=引用 楼主 colwer 的回复:] android4.0(linux2.6.34)设备有以太网,网卡芯片为lan8720a,能正常上网,但每次重启后,mac地址变化(驱动中的mac地址是随机的),由于要通过mac地址来控件设备,所以每台设备只能有一个固定mac,并且两台设备的mac不能一样. 问: 1. lan8720能保存mac地址吗? 2. linux驱动中能读取一个配置文件吗(比如/etc/mac.conf),每次开机来读取这个文件。但一个是内核空间,一个你是驱动的?用户空间和内核空间的话你用ioctl不能交互吗
是用户空间,不知能实现否。 或者有其它方法实现吗?[/quote] 是驱动的,如果不在驱动中解决那最好了。 看来只有用笨办法了,串口中netcfg eth0 hwaddr xxx 然后再做成apk,让用户自己去定义吧。 这个方法问题是android应用中如何去执行命令,

try{
       	 	process = Runtime.getRuntime().exec("/system/xbin/su"); 	//ran as root
       	 	outstr = new DataOutputStream(process.getOutputStream());
       	 	instr = new DataInputStream(process.getInputStream());
            outstr.writeBytes("/system/bin/chmod 777 /dev/i2c-0" + " \n");   //modify the device properties 
            outstr.writeBytes(" exit \n");
            outstr.flush();
            process.waitFor();
       }catch(Exception e){
       		System.out.println("set mac error!");
       }
试了一下子,运行命令不成功,不知道是root的问题还是什么问题[/quote] 代码贴错了
colwer 2013-06-22
  • 打赏
  • 举报
回复
引用 1 楼 guoyoulei520 的回复:
[quote=引用 楼主 colwer 的回复:] android4.0(linux2.6.34)设备有以太网,网卡芯片为lan8720a,能正常上网,但每次重启后,mac地址变化(驱动中的mac地址是随机的),由于要通过mac地址来控件设备,所以每台设备只能有一个固定mac,并且两台设备的mac不能一样. 问: 1. lan8720能保存mac地址吗? 2. linux驱动中能读取一个配置文件吗(比如/etc/mac.conf),每次开机来读取这个文件。但一个是内核空间,一个你是驱动的?用户空间和内核空间的话你用ioctl不能交互吗
是用户空间,不知能实现否。 或者有其它方法实现吗?[/quote] 是驱动的,如果不在驱动中解决那最好了。 看来只有用笨办法了,串口中netcfg eth0 hwaddr xxx 然后再做成apk,让用户自己去定义吧。 这个方法问题是android应用中如何去执行命令,

是用户空间,不知能实现否。
或者有其它方法实现吗?[/quote]
是驱动的,如果不在驱动中解决那最好了。
看来只有用笨办法了,串口中netcfg eth0 hwaddr xxx
然后再做成apk,让用户自己去定义吧。
这个方法问题是android应用中如何去执行命令,

试了一下子,运行命令不成功,不知道是root的问题还是什么问题
凉凉二点凉 2013-06-22
  • 打赏
  • 举报
回复
引用 楼主 colwer 的回复:
android4.0(linux2.6.34)设备有以太网,网卡芯片为lan8720a,能正常上网,但每次重启后,mac地址变化(驱动中的mac地址是随机的),由于要通过mac地址来控件设备,所以每台设备只能有一个固定mac,并且两台设备的mac不能一样. 问: 1. lan8720能保存mac地址吗? 2. linux驱动中能读取一个配置文件吗(比如/etc/mac.conf),每次开机来读取这个文件。但一个是内核空间,一个是用户空间,不知能实现否。 或者有其它方法实现吗?
你是驱动的?用户空间和内核空间的话你用ioctl不能交互吗

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧