All posts by Fred

Recent Development Status of LXNM

LXNM (Lightweight Network Manager) is working now after a long time for development. If you often check the news of SVN, you can notice that the next generation of LXNM has already supported wireless connection setting, also it has many feature as old version of LXNM. The new implementation and protocol defination seems to work well at least there is no bug of old version of LXDE had that no Access Point was scanned always.

Here is some screenshots to show you current LXNM wireless support:

As a network manager, wireless is the basic feature, but only the feature is not enough for new internet devices. To be a full function network connection utility, it must provide most popular methods of internet connection service something’s like 3G(HSPDA), PPPoE, dial…etc. And also we can expect WiMAX will be coming soon, so supporting WiMAX maybe important and necessary in the feature as well.

So far most network connections methods need to use PPP (Point-to-Point Protocol) to make connection, so we must try to focus on how’s PPP working and how to integrate PPP stuffs with our program. Fortunately, Most of operating system was using pppd to handle the ppp connections, it seems to be a standard we can consider. If we know how to get pppd immediate status, it will be easy to integrate PPP with our utility for us.

Regarding pppd implementation, it uses a tdb(samba database) to store current connection information(IP, interface, deivce, gateway, dns…etc) in system folder as root. Thus we need to read the file to get network status and the relationship between modem(eg, 3G modem, general modem) and network interface(eg, ppp0, ppp1…). Because of pppd is a user-space implementation as well as it doesn’t have library to provide serial APIs to let us be easy to operate its own stuffs, LXNM must direct open the tdb file. The problem is that pppd will update the tdb file anytime, it is possible that database be modified when LXNM is just reading the file. When it is happened, LXNM will get incorrect information or access failed to cause crazy crash. For solving this bug, we do some to check more information details which is from tdb. After some hard works, right now the issue was solved already.

Besides, the 3G support which is most important feature people concern. LXNM will try to use AT command to control 3G (HSDPA) modem to implement the connection handler, it can provide more information(ISP, Service Location, current area…etc) for your SIM Card with AT command. Some developers suggest us to research the implementation of Modem Manager Project for helping development.

Now we are working on this part which is that dialing with 3G modem, but there were also some weird problems we got. More details about those issues will be explained at blog next time. :-)

LXNM current status and the plan in the future

Next generation of LXNM (Lightweight Network Manager) is still under development right now, You guys can see the prototype which was implemented in SVN already. In the future, LXNM will provide some programs includes lxnm daemon, utility which is a command line program to make control of all kind of networking devices be unified into only one utility, a LXPanel plugin and a standalone applet for running without LXPanel.

So the project will has three parts to be maintained:
1. lxnm (LXNM Daemon and command line utility – lxnetctl)
2. lxpanel-netstat (LXPanel plugin)
3. lxnm-applet (standalone applet)

For the current version in SVN, lxnm can be working now, we can using lxnetctl utility to connect to lxnm daemon to control our networking devices and get informations include ethernet and wireless interface.

BTW, I am now working on lxnm-applet to implement a graphical LXNM client to display and control network devices.

Besides, in the future, LXNM will provide a library to make easy to write a new LXNM client(eg, lxnm-applet) for developer.

LXNM Will Bring Back to Life

So far LXNM(Network Manager of LXDE) was in prototype, LXDE team was just trying to implement a usable network utility. In the beginning, it was expected be enough to work instead of Network Manager of GNOME. But even today, most of people still uses LXDE desktop environment without LXNM due to it is so buggy and poor. Also LXNM has no more improvements in the past, it seems to die for a long time.

It is the truth that LXNM will bring back to life, LXDE team have tried to restart this project and plan on working to implement new architecture of LXNM. Here is a diagram of new structure for next version of LXNM:

LXNM Structure

In principle LXNM will keep original features and most of architecture, but for more requirements of networking device operations, it will be modified or re-designed some parts of that, For communication of Client/Server, LXNM protocol will be re-defined to support more features that something’s just like response of networking status, it means that in the future user can get more complete informations of networking in a moment, and also fixed a critical bug that netstat plugin of LXPanele cannot found out any wireless Access Point as non-root.

For easy to migrate to other platform which is other linux distribution or other Unix-like operating system, LXNM still keep script-based method to handle network device control. Considering that efficiency issue, LXNM will provide a new way to implement that direct call system call to operate network device for each operating system in C language without any scripts, this feature needs more time to be done due to it’s harder and more complicated than script-based method.

With the Google Summer of Code 2009, LXNM is restarting right now. We expect that LXNM will have a great usable version after three month in the future.

Recent Status of LXDE

Actually, the LXDE (Lightweight X11 Desktop Environment) project had rested for some time. Though we’re getting more and more people to join us since Linux World Expo 2008, LXDE have no much improvements since July this year. It’s happened due to our main developers didn’t have time to write new code, PCMan took time to focuses on his physician jobs, Jserv has worked for a new project which is confidential. About me, I was burdened with my family, so I also need to focus on my current jobs and my school to earn more money.

Recently, we’re planning to release a new version and new stuffs of some LXDE components for Merry Christmas. :D It is a great news that LXDE has a new project – “menu-cache”, which is a library creating and utilizing caches to speed up the manipulation for freedesktop.org defined application menus, and also it can be used as a replacement of libgnome-menu of gnome-menus. It means the menu-cache will speed up our LXLauncher and LXPanel menu, they will be getting faster. for supporting the menu-cache, PCMan is working hard on LXPanel right now, you can see logs of SVN everyday.

Besides, we hope to release a lxpanel-dev package for development of lxpanel plugin next version. Currently, it is difficult to write a new plugin for lxpanel, if you wanna write a new one, you have to download the LXPanel sourcecode and inject your code into the LXPanel and then copy the .so file to the system folder after compile it successful. It doesn’t make sense that is too complicated for developing a plugin. So we are tring to export header files and pkgconfig for making easy for development of plugin. Additionally, LXPanel has been reformed, lxpanel-core and lxpanel-plugin be separated. It will be helpful to maintain LXPanel sourcecode for us.

Well, I wanna make an apology for all of patch provider right now, because you guys’ patches which wasn’t applied for a long time. We are reviewing those patches currently, it will be applied as soon as possible, I hope so.

LXDE team members believe that LXDE has a great future, even if we don’t have much time to do that. Hope you guys can join us to help LXDE keeps going. :-)