linux mac到mac直连原理和方法

15 篇文章 0 订阅
5 篇文章 0 订阅

基本原理:伪装phy 操作的返回值,以及为phy的属性填充等。

一、uboot修改

1)driver/net/zynq_gem.c
                static int phy_detection(struct udevice *dev)
                    这个函数中的两处
                    phyread(priv, priv->phyaddr, PHY_DETECT_REG, &phyreg);
                    phyreg = PHY_DETECT_MASK;//

2)driver/net/phy/phy.c
                int get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id)
                    函数最后的返回值,给个合理的ID值,比如:
                    *phy_id = 0x7989001c;//

3)driver/net/phy/phy.c
                static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
                        u32 phy_id,
                        phy_interface_t interface)
                        
                        dev->duplex = DUPLEX_FULL;//
                        dev->link = 1;//
                        dev->interface = interface;//
                        dev->autoneg = AUTONEG_DISABLE;//AUTONEG_ENABLE;

4)driver/net/phy/phy.c
                int phy_reset(struct phy_device *phydev)    
                    函数最后的reg,赋值为0x0;
                    reg = 0;

5)driver/net/phy/phy.c
                int genphy_update_link(struct phy_device *phydev)
                
                    unsigned int mii_reg;
                    phydev->link = 1;//
                    return 0;

6)driver/net/phy/phy.c
                int genphy_parse_link(struct phy_device *phydev)

                    int mii_reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMSR);
    
                    phydev->duplex = DUPLEX_FULL;//
                    phydev->speed = SPEED_1000;//
                    return 0;//

二、kernel修改

1)drivers/net/ethernet/cadence/macb.c 
            static int macb_mii_probe(struct net_device *dev)
                    强制参数如下:
                    bp->link = 1;//
                    bp->speed = SPEED_1000;//
                    bp->duplex = DUPLEX_FULL;//

2)driver/net/phy/phy_device.c
        struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
                     bool is_c45,
                     struct phy_c45_device_ids *c45_ids)
                     强制参数如下:

                    dev->speed = SPEED_1000;//
                    dev->duplex = DUPLEX_FULL;//
                    dev->link = 1;//
                    dev->interface = PHY_INTERFACE_MODE_RGMII_ID;//
                    dev->autoneg = AUTONEG_DISABLE;//

3)driver/net/phy/phy_device.c

        static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
              bool is_c45, struct phy_c45_device_ids *c45_ids)
                    强制phy id如下:
                    *phy_id = 0x7989001c;//
4)driver/net/phy/phy_device.c                    
        static int phy_poll_reset(struct phy_device *phydev)
                        函数直接强制返回0。
                
5)driver/net/phy/phy_device.c                
        static int genphy_config_init(struct phy_device *phydev)

                强制参数,忽略phy的读值如下:
                /* Do we support autonegotiation? */
                val = phy_read(phydev, MII_BMSR);
                
                //printk("val = 0%x\r\n",val);//
                features |= SUPPORTED_1000baseT_Full;//
                phydev->supported = features;//
                phydev->advertising = features;//

                return 0;//

  • 0
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 4.9是Linux内核的一个版本,而Mac是苹果公司开发的操作系统。由于LinuxMac都是基于UNIX的操作系统,因此它们之间可以直接连接。 首先,要实现LinuxMac直连,需要确保两者在同一个局域网中。如果两台设备连接到同一个路由器或交换机上,它们就可以直接通信。 其次,需要在Linux 4.9上安装并配置适当的网络服务,例如SSH(Secure Shell)服务器。SSH是一种加密协议,用于在网络上安全地远程连接和管理设备。 然后,在Mac上使用终端应用程序打开SSH客户端,并使用Linux 4.9的IP地址和SSH服务器的用户名和密码进行连接。可以使用以下命令进行连接: ``` ssh username@Linux_IP_address ``` 其中,"username"是在Linux 4.9上创建的用户账户的用户名,"Linux_IP_address"是Linux 4.9的IP地址。 成功连接后,可以在Mac上通过SSH客户端通过命令行界面远程管理Linux 4.9。可以执行各种命令,访问文件和目录,以及进行其他Shell操作。 需要注意的是,直接连接需确保Linux 4.9上的SSH服务器配置正确,包括允许远程访问和正确的用户名和密码。此外,要确保网络连接稳定和安全,可以采取必要的网络安全措施,例如使用防火墙和加密通信等。 总之,Linux 4.9和Mac之间可以直接连接,并通过SSH协议实现远程访问和管理。这为用户在不同操作系统之间进行文件传输、远程操作等提供了便捷和灵活的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值