android4.0(linux2.6.34)设备有以太网,网卡芯片为lan8720a,能正常上网,但每次重启后,mac地址变化(驱动中的mac地址是随机的),由于要通过mac地址来控件设备,所以每台设备只能有一个固定mac,并且两台设备的mac不能一样.
问:
1. lan8720能保存mac地址吗?
2. linux驱动中能读取一个配置文件吗(比如/etc/mac.conf),每次开机来读取这个文件。但一个是内核空间,一个是用户空间,不知能实现否。
或者有其它方法实现吗?linux mac lan8720LinuxMacAndroid 4.0网卡

解决方案 »

  1.   


    你是驱动的?用户空间和内核空间的话你用ioctl不能交互吗
      

  2.   


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

  3.   


    是用户空间,不知能实现否。
    或者有其它方法实现吗?
    是驱动的,如果不在驱动中解决那最好了。
    看来只有用笨办法了,串口中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的问题还是什么问题代码贴错了
      

  4.   


    是用户空间,不知能实现否。
    或者有其它方法实现吗?
    是驱动的,如果不在驱动中解决那最好了。
    看来只有用笨办法了,串口中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的问题还是什么问题代码贴错了
    apk好像没有权限执行etcfg eth0 hwaddr xxx。你把这个命令做成服务放在init.rc里面,apk通过ctrl.start来启动这个服务吧
      

  5.   

    你应该有源码环境,具体system权限的话还是不能执行吗?如果不行就按上面方法
      

  6.   


    设备已有su权限,但是还是不成功。
    请问下“apk好像没有权限执行etcfg eth0 hwaddr xxx。你把这个命令做成服务放在init.rc里面,apk通过ctrl.start来启动这个服务吧 ”这个是如何实现的?