On 11/10/15 11:20, Conen, Johannes wrote: > Hmm, you're right..... is it briefly mentioned in the "ShellPkg > Notes.txt" - I must admit, I only took a look at the > "UDK2015-ReleaseNotes-MyWorkSpace.txt" and expected all major changes > to mentioned there (and well, they were, like the moving of the > library files). So this non-backwards-compatibility from UDK2015 to > UDK2014 regarding network-related stuff is intended?
I'll have to let Jiaxin answer this question; I'm not a participant in UDK feature planning. And, I have no idea how UDK releases account for compatibility in general. (My *guess* is that UDK2015 generally targets (or moved towards) UEFI 2.5, and Ip4Config (version 1) is apparently deprecated in UEFI 2.5.) Thanks Laszlo > > Greetings > Johannes > > -----Ursprüngliche Nachricht----- > Von: Laszlo Ersek [mailto:ler...@redhat.com] > Gesendet: Dienstag, 10. November 2015 11:06 > An: Conen, Johannes; Wu, Jiaxin; edk2-devel@lists.01.org > Cc: Leif Lindholm (Linaro address) > Betreff: Re: [edk2] ShellPkg: Network commands (ifconfig/ping) broken > > On 11/10/15 10:49, Conen, Johannes wrote: >> Hi there, >> >> I made my tests with the binary shell from ShellBinPkg from UDK2014, >> from UDK2015, the current master and a few commits in between and >> rebuilt the shell from ShellPkg for UDK2014, UDK2015, the current >> master and a few commits in between UDK2014 and UDK2015. >> >> It worked fine with r17868 and didn't work anymore with r17869, so it >> has to be that commit (I of course rebuilt the shell from ShellPkg). >> If I put both shells on a USB-stick and switch between them on the >> fly, it works in the one built from r17868 and doesn't work in the one >> built from r17869. Regarding ShellBinPkg: the last version that worked >> is r17619 (which is quite logical since the version after that, >> r18187, is built from ShellPkg r18186, which didn't work for me >> anymore). >> >> I'm not working on OVMF, but on real hardware (X64) - don't know >> exactly with which version the UEFI firmware was written, but I assume >> it's UDK2014. I found nothing in the release notes that would break >> backwards compatibility to firmware versions built with older EDKII >> versions in this regard. > > Okay, that seems to explain it. The platform firmware on your physical > machine provides Ip4Config (version 1) only, but the shell built from recent > edk2 (and probably the binary shipped in UDK2015) requires Ip4Config2. > > Hm... I have not been a UDK user, but now I downloaded "UDK2015.Notes.zip", > and in "ShellPkg Notes.txt", it says under "NEW FEATURES AND CHANGES", point > 15: > > Change "ping" and "ifconfig" code to consume Ip4Config2 protocol. > > So I think this has been (technically) documented in the UDK2015 release. > Perhaps the lack of compatibility with UDK2014 should have been emphasized. > > (But, I'm just a curious bystander in this discussion anwyay...) > > Thanks > Laszlo > >> >> With best regards, >> Johannes Conen >> >> Siemens AG >> Process Industries and Drives Division Process Automation >> Manufacturing Karlsruhe PD PA MF-K IPC 2 Oestliche Rheinbrueckenstr. >> 50 >> 76187 Karlsruhe, Germany >> mailto:johannes.co...@siemens.com >> >> >> -----Ursprüngliche Nachricht----- >> Von: Wu, Jiaxin [mailto:jiaxin...@intel.com] >> Gesendet: Dienstag, 10. November 2015 02:42 >> An: Laszlo Ersek; Conen, Johannes; edk2-devel@lists.01.org >> Cc: Leif Lindholm (Linaro address) >> Betreff: RE: [edk2] ShellPkg: Network commands (ifconfig/ping) broken >> >> Hi Laszlo and Conen, >> Thanks for your reply, I have double checked the ShellBinPkg and ShellPkg in >> UDK2015 release version, Both of them have included my patch for Ip4Config >> Protocol deprecated work. >> I'm also confused by the test result below, seems only time appeared >> abnormal. >> >> Conen: Are you using the shell binary released in UDK2015? >> >> Thanks. >> Jiaxin >> >> -----Original Message----- >> From: Laszlo Ersek [mailto:ler...@redhat.com] >> Sent: Tuesday, November 10, 2015 4:30 AM >> To: Conen, Johannes; edk2-devel@lists.01.org >> Cc: Leif Lindholm (Linaro address); Wu, Jiaxin >> Subject: Re: [edk2] ShellPkg: Network commands (ifconfig/ping) broken >> >> On 11/09/15 16:52, Conen, Johannes wrote: >>> Hello everyone, >>> >>> after switching from UDK2014 to UDK2015, I noticed that the network >>> commands (ifconfig / ping) don't work anymore. ifconfig just exits >>> with no feedback and ping says "Config no mapping" (logical, as it is >>> not possible to get an IP address via ifconfig). In UDK2014 everything >>> worked fine. >>> >>> With the help of unixsmurf (thanks a lot) >> >> Argh. Can we stop using these "funny" nicks on IRC? >> >> "unixsmurf" is Leif. >> >> What do you think, Leif? :) >> >>> I went on bughunting and >>> found out that commit r17869 / git sha >>> 7c25b7ea5b2c029a9e7a0be57f7c20f31d720c7d broke it. Wild guess: it has >>> something to do with the new protocol. >> >> That's close, but my take is not that exact commit. Instead, what about >> this: >> >> https://github.com/tianocore/edk2/commit/2aa0eb5df61e >> >> == SVN rev 17917. >> >> (I reviewed that commit.) >> >> But, it works for me: >> >>> Shell> ifconfig -s eth0 dhcp >>> Shell> ifconfig -l eth0 >>> >>> ----------------------------------------------------------------- >>> >>> name : eth0 >>> Media State : Media present >>> policy : dhcp >>> mac addr : 52:54:00:29:80:AE >>> >>> ipv4 address : 192.168.122.182 >>> >>> subnet mask : 255.255.255.0 >>> >>> default gateway: 192.168.122.1 >>> >>> Routes (2 entries): >>> Entry[0] >>> Subnet : 192.168.122.0 >>> Netmask: 255.255.255.0 >>> Gateway: 0.0.0.0 >>> Entry[1] >>> Subnet : 0.0.0.0 >>> Netmask: 0.0.0.0 >>> Gateway: 192.168.122.1 >>> >>> DNS server : >>> 192.168.122.1 >>> >>> >>> ----------------------------------------------------------------- >>> Shell> ping 8.8.8.8 >>> Ping 8.8.8.8 16 data bytes. >>> 16 bytes from 8.8.8.8 : icmp_seq=1 ttl=0 time=30640ms >>> 16 bytes from 8.8.8.8 : icmp_seq=2 ttl=0 time=31249ms >>> 16 bytes from 8.8.8.8 : icmp_seq=3 ttl=0 time=33280ms >>> 16 bytes from 8.8.8.8 : icmp_seq=4 ttl=0 time=38577ms >>> 16 bytes from 8.8.8.8 : icmp_seq=5 ttl=0 time=28432ms >>> 16 bytes from 8.8.8.8 : icmp_seq=6 ttl=0 time=31275ms >>> 16 bytes from 8.8.8.8 : icmp_seq=7 ttl=0 time=26576ms >>> 16 bytes from 8.8.8.8 : icmp_seq=8 ttl=0 time=33192ms >>> 16 bytes from 8.8.8.8 : icmp_seq=9 ttl=0 time=31112ms >>> 16 bytes from 8.8.8.8 : icmp_seq=10 ttl=0 time=28237ms >>> >>> 10 packets transmitted, 10 received, 0% packet loss, time 312570ms >>> >>> Rtt(round trip time) min=26576ms max=38577ms avg=31257ms >> >> This on OVMF just built from edk2 at SVN rev18759. (Note that in OVMF the >> shell is built from source as well.) >> >>> Personally I think this is a critical issue - it practically makes it >>> impossible to use any network related stuff in the UEFI shell. >> >> I suspect that you are using an old (UDK2014) shell binary on top of a new >> (UDK2015) network stack, or vice-versa. >> >> If you check the commit message of SVN rev 17917 / git 2aa0eb5df61e, it said >> that it was safe to remove the Ip4Config protocol *because* SVN rev >> 17869 / git 7c25b7e [that you have found] had already moved ping / ifconfig >> to the new protocol. >> >> And at the time of SVN rev 17869 / git 7c25b7e, the new protocol existed >> (see SVN rev 17853 / git 1f6729ffe980). >> >> In chronological order: >> - SVN rev 17853 / git 1f6729ff: implements the Ip4Config2 protocol, >> - SVN rev 17869 / git 7c25b7ea: migrates ping & ifconfig to Ip4Config2, >> - SVN rev 17917 / git 2aa0eb5d: removes Ip4Config (no more users) >> >> So, assuming you build *all* of your firmware from edk2, from source, >> including the shell, you should end up with working ping & ifconfig at any >> stage. >> >> I don't know at what stage UDK2015 was packaged. If it happened after SVN >> rev 17917 / git 2aa0eb5d, then I guess the message of that commit >> applies: "Ip4ConfigDxe driver is deprecated in UEFI 2.5, so we will not >> support original Ip4Config Protocol" -- please use a conformant shell I >> guess. >> >> I'm still a bit confused, because ShellBinPkg was also updated in SVN rev >> 18187 / git 1fe76acc, which was about a month after SVN rev 17917 / git >> 2aa0eb5d above. So unless Intel released UDK2015 exactly within that one >> month, I cannot see how you can encounter this problem. >> >> Are you using a shell binary whose source is still based on UDK2014 (or >> older)? >> >> Thanks, >> Laszlo >> >> >>> With best regards, >>> Johannes Conen >>> >>> Siemens AG >>> Process Industries and Drives Division Process Automation >>> Manufacturing Karlsruhe PD PA MF-K IPC 2 Oestliche Rheinbrueckenstr. >>> 50 >>> 76187 Karlsruhe, Germany >>> mailto:johannes.co...@siemens.com >>> >>> >>> _______________________________________________ >>> edk2-devel mailing list >>> edk2-devel@lists.01.org >>> https://lists.01.org/mailman/listinfo/edk2-devel >>> >> > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel