NSLU2 mod

Moderator: Telldus

dryg
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re:

Post by dryg »

Jaxån wrote:Då skall vi se. Så här har jag gjort. Det kan fungera för andar.

Jag kör Debain/Lenny på en liten strömsnål maskin (Linksys NSLU 2) som använder en ARM-CPU. Telldus tillhandahåller förkompilerade paket, men endast för i386 och amd64. Så därför måste jag kompilera egen version av programvaran. Men jag vill ju fortfarande ha debian-paket.
Så här gjorde jag (vad jag kommer ihåg :D)
# Kopiera rad för rad till ett kommandoskal
# Detta är en kommentar. Bara att ignorera raden.
# Jag använder aptitude, men apt-get fungerar även.
# Se till att paketen är uppdaterade
sudo aptitude update
sudo aptitude upgrade
# Installera paket så att vi kan kompilera egna program
sudo aptitude install build-essentials
# Installera versionshanterar subversion så vi kan hämta källkoden
sudo aptitude install subversion fakeroot
# Installera paket som telldus behöver
sudo aptitude install libconfuse-dev libqt4-dev help2man
# Hämta källkoden till katalogen Source
mkdir ~/Source
cd ~/Source
# Detta behöver göras bara en gång
svn co http://svn.telldus.se/telldus
cd telldus//telldus/branches/2.0
# För att senare uppdatera, gå till katalogen ~/Source/telldus och gör bara svn update
# Lägg till -DGENERATE_MAN=1 i rules-filen (Kan vara fixat senare)
sed -i.OLD -e '41a\ -DGENERATE_MAN=1 \\' debian/rules
# Skapa paket, det tar lång tid.
fakeroot debian/rules binary
cd ..
# Installera de tre paken
sudo dpkg -i *.deb
# Fixa statusfil (Kan vara fixat senare)
sudo cp /dev/null /var/state/telldus-core.conf
# Justera konfig-filen med en editor, nano emacs vi eller vad ni vill
sudo emacs /etc/tellstick.conf
# Testa!
sudo tdtool -l
Om det fungerar, tala gärna om det. Om det inte fungerar, tala gärna om då åxå :)
Nu har jag ju inte en NSLU2 utan en LG-NAS (N1T1) som jag försöker kompilera på,
men jag får:
"gcc: error trying to exec 'cc1': execvp: No such file or directory"

vilken metod jag än försöker med :-(

Är det någon debian-kunnig här som kan hjälpa mig i rätt riktning?
Jag har installerat och om-installerat gcc, cpp build-essential, cmake
(När jag har testat med cmake så har jag kört "cmake -D CMAKE_C_COMPILER=/usr/bin/gcc . ", hoppas att det är rätt)

I exemplet ovan så kommer jag (så klart) till "fakeroot debian/rules binarys" och sen samma fel igen.

min debian verkar lite trasig.. men vad är det som saknas?

//Johan
LG-NAS-N1T1:/# uname --a
Linux LG-NAS-N1T1 2.6.30-nt1 #6 Tue Oct 5 16:47:21 KST 2010 armv5tel GNU/Linux
dryg
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Re:

Post by dryg »

dryg wrote:
Nu har jag ju inte en NSLU2 utan en LG-NAS (N1T1) som jag försöker kompilera på,
men jag får:
"gcc: error trying to exec 'cc1': execvp: No such file or directory"

vilken metod jag än försöker med :-(

Är det någon debian-kunnig här som kan hjälpa mig i rätt riktning?
Jag har installerat och om-installerat gcc, cpp build-essential, cmake
(När jag har testat med cmake så har jag kört "cmake -D CMAKE_C_COMPILER=/usr/bin/gcc . ", hoppas att det är rätt)

I exemplet ovan så kommer jag (så klart) till "fakeroot debian/rules binarys" och sen samma fel igen.

min debian verkar lite trasig.. men vad är det som saknas?

//Johan
LG-NAS-N1T1:/# uname --a
Linux LG-NAS-N1T1 2.6.30-nt1 #6 Tue Oct 5 16:47:21 KST 2010 armv5tel GNU/Linux
HIttade cc1 under "/usr/lib/gcc/arm-linux-gnueabi/4.1" så jag la till den sökvägen i PATH och försökte med
"cmake -D CMAKE_C_COMPILER/usr/bin/gcc-4.1 . "

Men då får jag i stället
gcc-4.1: error trying to exec 'as': execvp: No such file or directory

... och "as" hittar jag inte :(
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Re: Re:

Post by Jaxån »

dryg wrote:
dryg wrote:
Nu har jag ju inte en NSLU2 utan en LG-NAS (N1T1) som jag försöker kompilera på,
men jag får:
"gcc: error trying to exec 'cc1': execvp: No such file or directory"

vilken metod jag än försöker med :-(

Är det någon debian-kunnig här som kan hjälpa mig i rätt riktning?
Jag har installerat och om-installerat gcc, cpp build-essential, cmake
(När jag har testat med cmake så har jag kört "cmake -D CMAKE_C_COMPILER=/usr/bin/gcc . ", hoppas att det är rätt)

I exemplet ovan så kommer jag (så klart) till "fakeroot debian/rules binarys" och sen samma fel igen.

min debian verkar lite trasig.. men vad är det som saknas?

//Johan
LG-NAS-N1T1:/# uname --a
Linux LG-NAS-N1T1 2.6.30-nt1 #6 Tue Oct 5 16:47:21 KST 2010 armv5tel GNU/Linux
HIttade cc1 under "/usr/lib/gcc/arm-linux-gnueabi/4.1" så jag la till den sökvägen i PATH och försökte med
"cmake -D CMAKE_C_COMPILER/usr/bin/gcc-4.1 . "

Men då får jag i stället
gcc-4.1: error trying to exec 'as': execvp: No such file or directory

... och "as" hittar jag inte :(
Vad försöker du göra?

Vad har du för OS på maskinen? Vilken maskin kompilerar du på, samma eller annan? Om annan maskin, vilket OS på den?

Jag kompilerade på maskinen som jag skall köra på, och inte korskompilering (kompilerar på en maskin med möjligt annat os och cpu för en annan maskin/os).
dryg
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Re:

Post by dryg »

Jaxån wrote: Vad försöker du göra?

Vad har du för OS på maskinen? Vilken maskin kompilerar du på, samma eller annan? Om annan maskin, vilket OS på den?

Jag kompilerade på maskinen som jag skall köra på, och inte korskompilering (kompilerar på en maskin med möjligt annat os och cpu för en annan maskin/os).
Ingen korskompilering!
(herreg-d), jag klara ju inte ens "vanlig" kompilering) :-)

Det är vad jag har förstått LG:s egen variant som nog (nog?) bygger på debian
uname -a ger:
Linux LG-NAS-N1T1 2.6.30-nt1 #6 Tue Oct 5 16:47:21 KST 2010 armv5tel GNU/Linux
Jag har uppdaterat allt paket med apt-get (och alla LG-funktioner fungerar fortfarande)

Jag skulle ju kunna be någon annan kompilera åt mig, eller korskompilera, men det är ju en roligare Linux-server om jag kan kompilera själv på den :-)

Jag har trixat massor med versioner av gcc (4.1,4.2 och 4.3) avinstallerat och installerat om build-essential, gcc, cpp och en massa andra paket som jag snubblat på när jag har googlat.
(det verkar inte vara direkt ovanligt, men de flesta påstår att deras problem har löst sig med build-essential eller ominstallation av cpp)

Jag får inga felmeddelanden när jag installerar build-essential eller gcc.

UPDATE: (SOLVED = HAPPY)
att jag saknade as i stället för cc1 berodde inte på att jag la till sökvägen till cc1 i path utan att jag körde 4.1

Så nu testade jag att installera gcc-4.1 (samtidigt som 4.3), la till sökvägen till cc1(4.1) i path och körde cmake.

Code: Select all

LG-NAS-N1T1:/usr/src/telldus-core-2.0.4# cmake -D CMAKE_C_COMPILER=/usr/bin/gcc .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/telldus-core-2.0.4
Ser bra ut va? :-)

Testar med:
LG-NAS-N1T1:/usr/src/telldus-core-2.0.4# make

Code: Select all

Scanning dependencies of target telldus-core
[  4%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/Device.cpp.o
[  9%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceBrateck.cpp.o
[ 13%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceEverflourish.cpp.o
[ 18%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceFuhaote.cpp.o
[ 22%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceGroup.cpp.o
[ 27%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceIkea.cpp.o
[ 31%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceNexa.cpp.o
[ 36%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceRisingSun.cpp.o
[ 40%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceSartano.cpp.o
[ 45%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceUndefined.cpp.o
[ 50%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceUpm.cpp.o
[ 54%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceWaveman.cpp.o
[ 59%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceX10.cpp.o
[ 63%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/DeviceYidong.cpp.o
[ 68%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/Controller.cpp.o
[ 72%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/Manager.cpp.o
[ 77%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/Settings.cpp.o
[ 81%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/telldus-core.cpp.o
[ 86%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/SettingsConfuse.cpp.o
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp: In function 'bool readConfig(cfg_t**)':
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:302: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:316: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:326: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:332: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:332: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:332: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp: In function 'bool readVarConfig(cfg_t**)':
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:349: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:349: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:349: warning: deprecated conversion from string constant to 'char*'
/usr/src/telldus-core-2.0.4/driver/libtelldus-core/SettingsConfuse.cpp:354: warning: deprecated conversion from string constant to 'char*'
[ 90%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/linux/Device.cpp.o
Linking CXX shared library libtelldus-core.so
[ 90%] Built target telldus-core
Scanning dependencies of target tdtool
[ 95%] Building CXX object tdtool/CMakeFiles/tdtool.dir/main.cpp.o
Linking CXX executable tdtool
[ 95%] Built target tdtool
Scanning dependencies of target rfcmd
[100%] Building C object rfcmd/CMakeFiles/rfcmd.dir/rfcmd.o
Linking C executable rfcmd
[100%] Built target rfcmd
Ser väl också bra ut? :-)

Då fortsätter vi väl med "make install" då :-)

Code: Select all

[ 90%] Built target telldus-core
[ 95%] Built target tdtool
[100%] Built target rfcmd
Linking CXX shared library CMakeFiles/CMakeRelink.dir/libtelldus-core.so
Linking CXX executable CMakeFiles/CMakeRelink.dir/tdtool
Linking C executable CMakeFiles/CMakeRelink.dir/rfcmd
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libtelldus-core.so.2.0.4
-- Installing: /usr/local/lib/libtelldus-core.so.2
-- Installing: /usr/local/lib/libtelldus-core.so
-- Installing: /usr/local/include/telldus-core.h
-- Installing: /etc/tellstick.conf
-- Installing: /var/state/telldus-core.conf
-- Installing: /etc/udev/rules.d/99-tellstick.rules
-- Installing: /usr/local/bin/tdtool
-- Installing: /usr/local/bin/rfcmd
Hade jag nu bara haft en tellstick så hade jag kunnat testa också :-)

Jag har ju inte bekräftat att det faktiskt fungerar, men OM jag får det att funka så kan jag väl tipsa om att dustin säjer NAS:en jag hackar på för 990kr med 1TB disk.
Billig linux-server med lite kraft: http://www.dustinhome.se/pd_5010481103.aspx

//Johan
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Re: Re:

Post by Jaxån »

dryg wrote:
Jaxån wrote: Vad försöker du göra?

Vad har du för OS på maskinen? Vilken maskin kompilerar du på, samma eller annan? Om annan maskin, vilket OS på den?

Jag kompilerade på maskinen som jag skall köra på, och inte korskompilering (kompilerar på en maskin med möjligt annat os och cpu för en annan maskin/os).
Ingen korskompilering!
(herreg-d), jag klara ju inte ens "vanlig" kompilering) :-)
Men vi vet ju inte det, du skulle kunna ge dig på att försöka med det :-)

Det är vad jag har förstått LG:s egen variant som nog (nog?) bygger på debian
uname -a ger:
Linux LG-NAS-N1T1 2.6.30-nt1 #6 Tue Oct 5 16:47:21 KST 2010 armv5tel GNU/Linux
Jag har uppdaterat allt paket med apt-get (och alla LG-funktioner fungerar fortfarande)
Bra, det innebär att det är en tillräckligt ny kärna. Även om vi inte vet om det är Debian :)
Jag skulle ju kunna be någon annan kompilera åt mig, eller korskompilera, men det är ju en roligare Linux-server om jag kan kompilera själv på den :-)

Jag har trixat massor med versioner av gcc (4.1,4.2 och 4.3) avinstallerat och installerat om build-essential, gcc, cpp och en massa andra paket som jag snubblat på när jag har googlat.
(det verkar inte vara direkt ovanligt, men de flesta påstår att deras problem har löst sig med build-essential eller ominstallation av cpp)

Jag får inga felmeddelanden när jag installerar build-essential eller gcc.

UPDATE: (SOLVED = HAPPY)
att jag saknade as i stället för cc1 berodde inte på att jag la till sökvägen till cc1 i path utan att jag körde 4.1

Så nu testade jag att installera gcc-4.1 (samtidigt som 4.3), la till sökvägen till cc1(4.1) i path och körde cmake.

Code: Select all

LG-NAS-N1T1:/usr/src/telldus-core-2.0.4# cmake -D CMAKE_C_COMPILER=/usr/bin/gcc .
-- The C compiler identification is GNU
...
-- Generating done
-- Build files have been written to: /usr/src/telldus-core-2.0.4
Ser bra ut va? :-)
Ja. Fast det behövs nog bara en av gcc. Jag skulle nog gå på den senaste.
Men det skall bara behöva paketet build-essential och cmake. build-essential skall se till att gcc installeras.

De borde vara i din PATH redan. Du skulle kunna provat med kommandot
which gcc
för att se var den hittat den.

Du kan behöva logga ut och in igen efter att installerat paket. Även om det kan räcka med några enkla kommandon, om man vet vad man gör :-)
Testar med:
LG-NAS-N1T1:/usr/src/telldus-core-2.0.4# make

Code: Select all

Scanning dependencies of target telldus-core
[  4%] Building CXX object driver/libtelldus-core/CMakeFiles/telldus-core.dir/Device.cpp.o
...
[ 95%] Building CXX object tdtool/CMakeFiles/tdtool.dir/main.cpp.o
Linking CXX executable tdtool
[ 95%] Built target tdtool
Scanning dependencies of target rfcmd
[100%] Building C object rfcmd/CMakeFiles/rfcmd.dir/rfcmd.o
Linking C executable rfcmd
[100%] Built target rfcmd
Ser väl också bra ut? :-)

Då fortsätter vi väl med "make install" då :-)

Code: Select all

[ 90%] Built target telldus-core
[ 95%] Built target tdtool
[100%] Built target rfcmd
Linking CXX shared library CMakeFiles/CMakeRelink.dir/libtelldus-core.so
...
-- Installing: /usr/local/bin/rfcmd
Hade jag nu bara haft en tellstick så hade jag kunnat testa också :-)
Såg ju bra ut. Ut och köp en tellstick och kolla :)
Jag har ju inte bekräftat att det faktiskt fungerar, men OM jag får det att funka så kan jag väl tipsa om att dustin säjer NAS:en jag hackar på för 990kr med 1TB disk.
Billig linux-server med lite kraft: http://www.dustinhome.se/pd_5010481103.aspx

//Johan
Tack för tipset!
Post Reply