YouTube HTML5 Switch (and other news)

Hello! Long time no see!

It’s been a busy period and I have lots of news to share. First of all, I decided to have a look on the Mozilla Add-on SDK . It has a very simple API to create Add-ons for Firefox.

Anyway, I tried to come up with an idea of what would be my first Add-on. Hmmm…An Add-on that can make my web experience less annoying. Considering that I spend half of my time on YouTube to listen to songs (mostly), view videos etc, as a Linux user, I get really annoyed when the Flash plug-in crashes and I have to restart Firefox.  You can always visit youtube.com/html5 to change that but what if you delete your cookies? It’s a boring procedure.

youtube_html5_switch_logo
YouTube HTML5 Switch logo

So, what I thought was to make an Add-on that would simply add the “html5=1” parameter on the URL. And I did it…well, kind of, it’s now an experimental Add-on for Firefox. I need to add some more features for it to be considered as a proper Add-on. It’s called “YouTube HTML5 Switch” and here it is at the Mozilla Add-ons website, and here is the source code on Github.

I currently develop the Add-on at the Add-on Builder (that means online). I will eventually download the SDK and try it on Fedora 🙂 It’s not the smartest Add-on in the world, but I think it’s a good start for a newbie. By the way I need to say that the SDK’s documentation is not very helpful and I needed to google a lot to write down a few lines of code. Anyway, in every “major” release I will be posting here any changes etc. You can also read the README.md on Github.

What’s more? Wonky Doll and the Echo (the band where I play) are supporting I Like Trains here in Athens on December 15, 2012. You can check our Bandcamp page and listen to our songs. Now, if you have installed the Add-on you can test it with these video…if you go on YouTube of course 🙂

Some videos like this for instance don’t have an HTML5 player so the plugin will not be of any use here.

Other videos though, do have have an HTML5 version and the plugin will work!

Disable NVIDIA on Sony VAIO VPCZ11X9E (Fedora 17) and more news

Hey! I know I haven’t posted anything these past few months but I would have no excuse if I didn’t post about that: I have disabled my NVIDIA card from the “Dynamic Hybrid Graphics System” of my Sony VAIO VPCZ11X9E.

A few more news: 2nd semester on my post-grad program was even better than the 1st one. Plus, the band I am participating in (both playing and composing), named Wonky Doll and the Echo, is about to release it’s debut album! Feel free to listen to four of our songs on SoundCloud (even more links there 🙂 )

Now, back to modifying our system, why would I want to disable my NVIDIA card? It’s because what I can only get out of this “hybrid system” is only the performance of my Intel card at the cost of Intel + NVIDIA working together! That means, more heat and faster battery discharges! Oh, by the way, I am now using Fedora 17 which is a lot more stable than Fedora 16 I must say (thanks GNOME!).

What I need to tell you is that: If you don’t know what you are doing, don’t trust any guide like this (…or do things at your own risk) 🙂 But you should know that in case of failure of this procedure, if you have at least once updated your kernel, you can just go back to the previous one and delete the files we will create. This will solve most of the crashes that might happen if you don’t follow the instructions correctly.

The Bumblebee project is for resolving the NVIDIA Optimus problem, not SONY’s hybrid system installed on some VAIO’s. So, I didn’t try that. What we are going to use is  acpi_call which is a kernel module (tip: that means it needs to be compiled again after a kernel update 🙂 )that will help us configure Fedora”s power management system in order to shut down the NVIDIA card.

My resources in order to learn how to shut down the card were mainly these:
http://amolh.weebly.com/2/post/2012/02/asusu36sd.html
http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls

We first need (as root) to download (lines 1-3), get inside the folder (line 4), compile (line 5, for that you need gcc, kernel-headers etc. if you don’t know what all that is…ask someone!), install the module on the current kernel  (lines 6-8) and test if it worked (that means the output of test_off.sh should get you one “works” next to a ACPI handle :

# yum -y update
# yum install git
# git clone https://github.com/mkottman/acpi_call
# cd acpi_call
# make
# cp acpi_call.ko /lib/modules/`uname -r`/kernel/drivers/acpi
# depmod -a
# modprobe acpi_call
# chmod +x ./test_off.sh

I got this one: Trying \_SB.PCI0.P0P2.DGPU._OFF: works! …which is great!

The result of the script will also be an increase of the battery duration (which I haven’t tested yet as my battery died a few months ago) and a decrease in the temperature of your system (you can see that in your terminal if you install the lm_sensors package on “Add/Remove Software” or “yum install lm_sensors”. The temprature of the NVIDIA card will drop to -1 degrees Celsious. The temprature of my CPU dropped approx. from 70 to 58 degrees!!!
Now you are able to shut down the NVIDIA card manually while you are using Fedora. Next, we have to make Fedora do this automatically in every boot.

As “su -” we will create a script named nvidia_off.sh :

# gedit  /usr/local/bin/nvidia_off.sh

and inside this script you will paste this:

#!/bin/sh
echo “——————————-” >> /var/log/nvidia.log
echo `date` >> /var/log/nvidia.log
echo “Disabling Nvidia video adapter !! ” >> /var/log/nvidia.log
echo “——————————-” >> /var/log/nvidia.log
echo “\_SB.PCI0.P0P2.DGPU._OFF” > /proc/acpi/call

What’s important is the first and the last line only. The last line might need modification from your part as the ACPI handler might be different for your system (if you have a different laptop than mine). The other lines are not compulsory. Since I use an SSD disc and have moved my /var/log folder in RAM that means logging this info is not really of value. But for everyone else who hasn’t done this it’s cool for debugging.

Now we need to modify the priviledges of this script with:

# chmod 775 /usr/local/bin/nvidia_off.sh

Next step is to configure our system to load the acpi_call module we installed in each boot. For that purpose we create a .conf file here (again with su -):

# gedit /etc/modules-load.d/acpi_call.conf

and just write or paste just this : acpi_call

Since we now know that our module will be loaded it is safe to execute our “nvidia_off.sh” script.

To do that we need to create another script in /etc/rc.d/ named “rc.local” (it used to exist in previous releases, now it doesn’t):

# gedit /etc/rc.d/rc.local

and write down  or copy-paste this:

#!/bin/bash
/usr/bin/sh /usr/local/bin/nvidia_off.sh

The final step is to stop the nouveau driver get activated during startup, as it will crash your system. We need to edit grub2:

# gedit /boot/grub2/grub.cfg

in this file you must be able to recognise the kernel in which you have just installed acpi_call next to the word menuentry 🙂 if you are not sure what’s your current kernel just use the command “uname -r”.

Now, right before the word quiet (which is before the command “echo ‘Loading initial ramdisk …’ “) paste this:

rdblacklist=nouveau

Yes, it blacklists the nouveau driver so that it will not load. If you boot succesfuly you will notice that the temprature of the NVIDIA card will not be mentioned anymore but the significant temprature drop will still be there. 🙂

New Linux OS, New University, New Album!

Hello world 🙂

I am writing this post from my freshly installed Fedora 16 (If you still haven’t downloaded and installed yet I suggest you do it). I am really excited and proud I am using Gnome 3.2. It has achieved a tremendous change on how we must start to perceive our desktop environment. It also does this with style (with minimal touches that I really love). And so far is doing great in terms of stability. No freezes at all. OK, some small details on some drivers is my weak point but I have to blame the manufacturers for that. Well, something I always wanted to yell on the internet: WHY ON EARTH DON’T YOU RELEASE LINUX DRIVERS? …sigh. Anyway everything runs smoothly.

Moving on to our next subject. Well, it’s about my studies. I am doing my master’s degree at the University of Athens. It’s an interdepartmental master of the Physics Department and the IT Department focusing on Electronics Automation…hell yeah. It’s not easy, but I enjoy it so far 🙂

Now, to the last subject. I uploaded my new album on Jamendo!!! It’s called “The pursuit of happiness“.I think it’s my best work so far…I have until now a very productive year. I hope the following years will be the same as this one. I don’t want to say much, it would be better if you just listen 🙂

Ladies and gentlemen, I hope you enjoy it ! 🙂

The pursuit of hapiness cover

My Fedora 15 tweaks for an SSD

NOTE: Same things apply even on Fedora 17/18/19 🙂

====== In English / Αγγλικά ======

Hello! I am going to share how I tweaked my Linux system using Fedora 15!

I did a bit of searching and found some interesting proposals on how to do it. To be honest there isn’t one specific way of doing it. It depends on how much you love your data, how much you want your SSD to live and of course what’s your hardware (eg. my SSD supports TRIM, I have enabled the RAID option and I have 8 GBs of RAM). In short, what I will do is make the system use the TRIM command (which is essential) and put the temporary folders in RAM.

tip: if you have other OSs installed and change to RAID mode (with one ssd it’s like AHCI), they might not work (there are guides to avoid re-installation)…Linux will work though 🙂

One great source was this one [1].

First of all, we will use the ext4 filesytem (no swap partition for me). There is one thing to know! Writing on your SSD without reason or moving/writing data is harming its life expectancy. SSDs have endurance due to the MLC technology [2] (approximately 10.000 writes per memory block [3]) which is cheaper, but in the end we also want our SSD to live!

Now, apart from my SSD, I also have my old HDD plugged in my computer. It’s SATA so I didn’t have any other problems to set it up. During the installation process, I created my partitions manually. You know: create some free space and then create new partitions with the appropriate mount points. I used “/” ,obviously for a partition for the root directory, and also “/home” to place my data and program configuration on a different partition (and disc). To store “/home” folder, I used the HDD, just because I want to download stuff and save my media files there! Remember that it’s bad for your SSD writing again and again to it.

After you install Fedora 15, to check if your SSD supports the TRIM command (supposing your disc is  /dev/sda) :

hdparm -I /dev/sda | grep TRIM

(grep will search and find the lines where the word “TRIM” exists in the output of the command before the “|” symbol)

Now, you must edit the “/etc/fstab” file, it’s the filesystem table.You can create a copy of this file in case you feel it won’t work (but, hey, it will) or something else goes wrong:

cp /etc/fstab /etc/fstab.bakup

How did I edit it? “su -” , give your password and then “gedit /etc/fstab”. Now, visit the second page [4] of the guide at step 2! TRIM command support (if your drive supports it of course) ! You absolutely need to do this! Now that you opened “fstab” you need to add the “discard” parameter next to the defaults parameter for the root directory! As you will see at the link it’s something like that:

/dev/sda1 / ext4 defaults

That will change to something like that:

/dev/sda1 / ext4 discard,defaults

Now, it’s up to you if you want to add one other parameter! Tweaking might mean less reliability and data integrity but that’s why I moved my precious data on my HDD 😉 You can also add the “noatime” parameter (just like discard)  and, hey(!), Linus Torvalds also suggests it [5]

What’s next? Moving our temporary folders to RAM. I have 8 GBs of RAM and I am not afraid to “use” them! By “temporary folders” I mean “/tmp”, “/var/tmp” and “/var/log”. For that, you need to add three lines (each one for every folder) at the “/etc/fstab” file. It’s step 6 at the guide. One line (for /tmp) will look like this:

none /tmp tmpfs defaults 0 0

Don’t worry about “none” (it’s just a name) it helps the folders stand out so that we will find them easier later. Next thing you can do is to also move the Mozilla Firefox cache there (as proposed in the guide)!

To check if everything is working just run the command “df” and it will show you what are you partitions doing!

OK, how can we optimize our system even more? Disabling journaling of ext4 (making it unable to keep track of data, meaning unreliable). BUT! This is as far as I will tweak my SSD. Furethermore, we allready changed “noatime”. I have the life expectancy I need and also a high speed disk, having in mind that I want my data uncorrupted as much as possible.

[1] http://cptl.org/wp/index.php/2010/03/30/tuning-solid-state-drives-in-linux/

[2] http://en.wikipedia.org/wiki/Multi-level_cell

[3] http://www.laptopmag.com/advice/expert/are-ssds-worth-the-money.aspx?page=3

[4] http://cptl.org/wp/index.php/2010/03/30/tuning-solid-state-drives-in-linux/2/

[5] http://kerneltrap.org/node/14148

======= In Greek / Ελληνικά =======

Για να λειτουργήσετε τον SSD σας ώστε να “ζήσει” και να λειτουργεί στην μέγιστη απόδοση, δεν υπάρχει μόνο ένας τρόπος. Ανάλογα με το hardware του υπολογιστή σας (ο δικός μου υποστηρίζει την εντολή TRIM , έχω ενεργοποιήσει το RAID mode και έχω 8GB RAM),και το πόσο χρειάζεστε την ασφάλεια των δεδομένων σας πρέπει να επιλέξετε εσείς τί αλλαγές θα κάνετε. Αυτό που είναι σίγουρο πως πρέπει να κάνετε είναι να ενεργοποιήσετε τη λειτουργεία TRIM του λειτουργικού. Εγώ επέλεξα και να μεταφέρω τους φακέλους “/tmp”, “/var/tmp /” και “/var/log” στη RAM, όπως επίσης εφτιαξα ένα partition για το  “/home” στον HDD δίσκο που μου ξέμεινε από το προηγούμενό μου PC.

συμβουλή: αν έχετε εγκαταστήσει ήδη κάποιο άλλο λειτουργικό εκτός του Linux και αλλάξετε το IDE mode σε RAID mode θα έχετε πρόβλημα το οποίο λύνεται και χωρίς format. Απλά ψάξτε το λίγο.

Ένα καλό site που συμβουλεύτικα για όσα έκανα στο δίσκο είναι αυτό εδώ [1] (δείτε τα links πάνω)

Καταρχήν, χρησιμοποιό το ext4 filesystem. Χωρίς swap. Πρέπει να γνωρίζετε ότι όσο περισσότερο γράφουμε στον δίσκο τόσο πιο γρήγορα θα σταματήσει να λειτουργεί στο επιθυμητό επίπεδο. Τόσο πιο γρήγορα θα πρέπει να πάρουμε καινούριο.

Λοιπόν, έφτιαξα ένα partition με το φάκελο root (“/”) στον SSD μου και ένα με το φάκελο “/home” HDD επειδή κατεβάζω και δημιουργώ συνέχεια αρχεία σε αυτόν τον φάκελο!

Έχοντας εγκαταστήσει το Fedora 15, για να δούμε, άραγε ο SSD σας υποστηρίζει το TRIM; (υποθέτως πως είναι ο  /dev/sda) :

hdparm -I /dev/sda | grep TRIM

(το grep θα ψάξει και θα βρει που βρίσκεται στην έξοδο της εντολής πριν το σύμβολο “|” η λέξη “TRIM”)

Τώρα θα επεξεργαστούμε το αρχείο “/etc/fstab”, είναι ο πίνακας για τα filesystems. Μπορείτε να δημιουργήσετε ένα αντίγραφω, μην πάει κάτι στραβά:

cp /etc/fstab /etc/fstab.bakup

Πως να το επεξεργαστείτε τώρα; Με το “su -” , δίνοντας τον κωδικό του root (administrator) και έπειτα με “gedit /etc/fstab” θα σας το ανοίξει με τον επεξεργαστή κειμένου. Τώρα, πηγαίνετε στη 2η σελίδα [4] του οδηγού, στο βήμα 2 (είναι στα αγγλικά)! Αφορά την υποστήριξη του TRIM command (αν το υποστηρίζει ο δίσκος) ! Πρέπει να το κάνετε! Απλά πρέπει να πάτε στο αρχείο που μόλις ανοιξαμε και να προσθέσετε την παράμετρο “discard” στο partition που εγκαταστήσαμε το root directory (το “/” δηλαδή”)! Πρέπει από κάπως έτσιt:

/dev/sda1 / ext4 defaults

Να γίνει  κάπως έτσι:

/dev/sda1 / ext4 discard,defaults

Αν θέλετε να πειράξετε κάτι άλλο εξαρτάται από εσας, για μέγιστη απόδοση φτάνει και αυτό. Μπορείτε (με ρίσκο για τα δεδομένα σας να προσθέσετε και την παράμετρο “noatime“(εγώ την έβαλα καθώς τα δεδομένα που με ενδιαφέρουν βρίσκονται στον HDD μου) Πάντως το συστήνει και ο Linus Torvalds [5].

Επόμενο! Έχω  8 GB RAM και δεν φοβάμαι να τα χρησιμοποιήσω όποτε είπα να μεταφέρω τους προσωρινούς φακέλους μου εκεί. Συγκεκριμένα τους “/tmp”, “/var/tmp” and “/var/log”. Πάλι στο “/etc/fstab” πρέπει να προσθέσουμε μερικές γραμμες (το βήμα 6 στον οδηγό). Μία από τις γραμμές που πρέπει να προστειούν στο τέλος του αρχείου είναι πχ. έτσι (για τον φάκελο /tmp):

none /tmp tmpfs defaults 0 0

Το “none” είναι απλά ένα όνομα, θα βοηθήσει μετά για να ξεχωρίζει από τα άλλα.

Μπορούμε επίσης να μεταφέρουμε και την cache του Mozilla Firefox cache σε αυτό το partition (όπως λέει και ο οδηγός)!

Για να δείτε αν δουλεύουν όλα ρολόι εκτελέστε την εντολή “df” και θα σας δείξει τί κάνουν τα partitions σας!

OK, τώρα αν θέλετε και κάτι παραπάνω (με δικόσας ρίσκο πάντα) μπορείτε να απενεργοποιήσετε το journaling του ext4. Αλλά! Δεν πρόκειται να πω άλλα καθώς δεν έχω πειράξει άλλο το δίσκο μου. Επιπροσθέτως ήδη προσέθεσα τη παράμετρο “noatime”. Ήδη έχω μεγαλώσει το προσδόκιμο ζωής του δίσκου μου. Μήπως τους κρατάμε και για πολύ;

FossComm 2011 and OpenFest 2011 review

This is my review from 2 events I attended and participated in. I will just report with few words what happened and what I did there. Of course I wasn’t alone. As always Fedora rocked with his presence (I will explain later). But! I didn’t only participate with Fedora. You know, I am basically a hardware guy, I study electronics (currently at my last semester, yeah!)

====OpenFest 2011===

OK! Since OpenFest 2011 was first I will start with this event! It was organized by students of the department of Computer Systems at the TEI of Pireaus. I think the Fedora booth was exemplar and with a lot of people helping! We had one bad comment though…few people really wanted the Fedora cheat cubes again on our booth table. I also believe it’s a very cool swag and it’s just a piece of paper! So, people should just wait for our next event 🙂

At OpenFest I made a presentation on Fedora 15 (mentioning and showing a bit of Gnome 3 magic). Pierros and Nikos did a very cool workshop on how to survive with Gnome 3 too!

I also co-presented a workshop with Pierros and Konstantinos concerning Arduino. While it was introductory, we had to repeat it for 2 times more! The room had about 35 seats I think, but at the first 2 presentations people were even standing outside the windows to watch (not to mention that the door was open and people were trying to listen from outside. The 3rd presentation was made in a bigger room the next day.

Photos (thanks to Thalia and Dimitris):

https://picasaweb.google.com/saliyath/OpenFest2011#

https://picasaweb.google.com/dimitrisglaros/Openfest2011#

===FossComm 2011===

Last but not least, the major open source event in Greece. This time at the Univercity of Patras, organized by the Department of Computer Engineering and Informatics. What I really need to mention is that the schedule of FossComm 2011 tried to cover the needs of everyone and I think it did. We enjoyed a lot of good presentations and workshops!

I need to mention that while the Fedora booth was represented well by all the Ambassadors who came to support, Fedora made the difference in the event’s schedule. We had good and many presentations. Not any community can do that 🙂

Of course the swag was there on both booths (Fedora and Mozilla).  But not always there. Visitors, hosts, everyone took everything 🙂

Together with Pierros Papadeas (also made presentations on Fedora and Mozilla at FossComm 2011 ) we did again, as in OpenFest 2011, an introductory Arduino presentation. If I could only have the time to show more code! People were starving for code! Something that we kind of did at OpenFest 2011 🙂 I wanted to talk to people about how useful a library and how Arduino is part of the “Internet of things” nowadays, showing Pachube and the completely opensource Thingspeak.

Presentations I attended:

  • Melissi project by Giorgos Logiotatidis (If you are looking for cloud/python stuff please please check it out and ask)
  • Building a platform-agnostic wireless network of interconnected smart objects using open source tools
    by Anastasia Protopapa and Basilios Georgitzikis (who I thank for his hospitality!). Interconnecting different Zigbee nodes? Sounds like the future to me!
  • hackerspace.gr – hackerspace αλα ελληνικά (I will post more details when hackerspace.gr will be completely ready, but you can follow us on the wiki, the mailing list, identi.ca , twitter or even facebook. We want to share the news everywhere.)

I think I didn’t fully attend something else, but I watch the work of many of the people that presented and I am fully aware of what they do and still wish the best for them. One example is the work of the foss.ntua team Consuela a very handy arduino project for controlling lights with a simple web client setup.

Photos (thanks to Thalia, and Dimitris) :

https://picasaweb.google.com/saliyath/Fosscomm2011Patras02#

https://picasaweb.google.com/dimitrisglaros/Fosscomm2011#

Once again, a big thank you to the hosts and organizers of the events. Another thank you to those who helped!

Sound fix for Adobe Flash for Firefox 4 beta on Fedora

I am currently using Firefox Minefield 4.0b12pre but I have tried this fix also on Firefox 4 beta 11 on my 64 bit system (Fedora 14)! This problem has occured to me with the 64 bit Adobe Flash plugin 10.2.

Some of the code I will paste here (the code for creating the linusmemcpy.c file)  was found in this post at Ahmed Abdo’s blog!

I will give you the script code to paste it in the terminal as after doing some trivial staf f the bug will be exterminated! But I will pretty much explain what this script does.

In general, what we need to do is to create a C file (with a certain memcopy function that will solve our problem) , and the binary and then load the binary when we open Firefox.  The first line of the script creates our C file at the hidden folder .mozilla  (to unhide use Control+H) named linusmemcpy.c , then “cat” is waiting for us to write our text (this time the C code) until we write EOF (end of file). Then what we do is to enter the .mozilla folder and compile the c file. Our last step is to use the GNU Linker with ld on the binary files.

Just copy the whole text and paste it on your terminal as it is 🙂

cat > $HOME/.mozilla/linusmemcpy.c <<EOF
#include <sys/types.h>

void *memcpy(void *dst, const void *src, size_t size)
{
void *orig = dst;
asm volatile("rep ; movsq"
:"=D" (dst), "=S" (src)
:"0" (dst), "1" (src), "c" (size >> 3)
:"memory");
asm volatile("rep ; movsb"
:"=D" (dst), "=S" (src)
:"0" (dst), "1" (src), "c" (size & 7)
:"memory");
return orig;
}
EOF
cd $HOME/.mozilla/
gcc -O2 -c linusmemcpy.c
ld -G linusmemcpy.o -o linusmemcpy.so
linusmemcpy.clin

Now the next very small step is to automate the procedure of starting Firefox correctly with the shortcut on the desktop panel. We will create a small shell script the same way we did with our C file. If you are using beta that means somewhere in your system exists the “firefox” shell script that executes the firefox-bin. We need to know the path to it! If already have a shortcut, right click -> Properties and look at “Command” . This is it. Mine (for firefox 4 from spot’s repos) says firefox4. Don’t forget the & at the end 😉

cat > $HOME/.mozilla/custom_firefox_startup.sh <<EOF
LD_PRELOAD=$HOME/.mozilla/linusmemcpy.so firefox4 &
EOF
chmod u+x $HOME/.mozilla/custom_firefox_startup.sh

So, now is our last step! Go to the icon of Firefox on the desktop panel , right click -> Properties , and at the command click “Browse” press control+H to unhide the folders, enter the .mozilla folder and select “custom_firefox_startup.sh”.

Now, close every instance of Firefox that is running right now (yes I ask too much, but you can leave my blog 🙂 ) and press the Firefox button 🙂

==== Ελληνικά/Greek ====

Σε αυτό το post δίνω οδηγίες για το πως να φτιάξετε το πρόβλημα που έχει παρουσιαστεί με τον ήχο στο Flash της Adobe (10.2) για τον Firefox 4 beta 11 (αυτό και το Minefield στην έκδοση 4.0b12pre δοκίμασα, λογικά τρέχει και σε άλλες beta). Χρησιμοποιό την 64bit εκδοση του Fedora 14.

Θα εξηγήσω λίγο τι γινεται με το script, όμως μπορείτε να το αντιγράψετε και να το επικολλήσετε στο terminal ολόκληρο χωρίς να γράψετε τίποτα εσείς! Απλά τα γράφω για να μη τα κάνετε απλά copy paste χωρίς να ξέρετε τί γίνεται περίπου.

Στη πρώτη εντολή δημιουργούμε ένα κενό αρχείο που θα είναι o C κώδικας με το fix μας (μια συνάρτηση που λέγεται memcpy) στο οποίο θα γράψουμε ότι χρειάζεται και θα περιμένει την λέξη EOF (που σημαίνει τέλος του αρχείου , end of file). Μετά δίνουμε την εντολή cd και μας κατευθήνει στον φάκελο .mozilla (η τελεία δίνει είναι κρυφός φάκελος που βρίσκεται στο home folder και για να τον δούμε πατάμε control+H). Εκεί βρίσκονται οι ρυθμίσεις του Firefox. Κάνουμε compile το C αρχείο και εκτελούμε και την εντολή ld για τον GNU Linker.

Στο επόμενο βήμα δημιουργούμε ένα μικρό shell script το οποίο απλά θα προφορτώσει τo binary αρχείο που φτιάξαμε προηγουμένως την ώρα που ανοίγει ο Firefox! Πάμε λοιπόν μετά στο εικονίδιο του Firefox στη μπάρα στην επιφάνεια εργασίας και κάνουμε δεξί click. Στην 3η σειρά με τη λέξη “Command” επιλέγουμε το Browse και από το Home folder πηγαίνουμε στο φάκελο “.mozilla” και επιλέγουμε το custom_firefox_startup.sh. Κλείνουμε κάθε παράθυρο του Firefox που είναι ανοιχτό και ξανανοίγουμε. Έτοιμοι! 🙂

Microwave circuit design/sim programs on Fedora

Hello once more,

Recently I made a presentation at the TEI of Pireaus on Arduino and Fedora Electronic Lab. Hopefully, I will repeat it to give the chance to more people to come.

I intend to make some simple tutorials (we’ll see how complex they’ll get on the way actually) on using programs that assist or create designs and simulations of microwave circuits and set-ups. In this post, I will just post a simple guide to install some programs that deal with the design and simulation of microwave circuits and components. What I am trying to do is at least reach the 3D FDTD simulation using free and open source software. Currently I have found Qucs, Transcalc, emGine and MIT’s Meep that will help us reach this goal. I am trying to install Elmer-FEM (which looks extremely cool and a lot easier than Meep) but unfortunately, I couldn’t install it due to problems with a certain dependency (ftgl-devel is installed but not found 😦  see here).

You can easily install Qucs with : $ su -c “yum install qucs” (it’s also inside Fedora Electronic Lab together with other valuable packages). It’s a circuit simulation program (not only for microwave circuits) that has various microwave components to use.

Transcalc is ” an analysis and synthesis tool for calculating the electrical and physical properties of different kinds of RF and microwave transmission lines”. The idea behind this is to get the dimensions of real components and then use the results (the parameters we need) in our simulation programs!

To install Transcalc you will need to install the GTK2.0 development files (gtk2-devel on fedora). After you download the package and place it in a folder of your choice (I have a “programs” folder and place every to-be-installed program there) you can go to the terminal and write :

$ cd ./your_path_to_transcalc_folder/

$ ./configure (if something is missing search in yum or “Add/Remove applications”)

$ make

$ su -c “make install” ….and to run the program just type : $ transcalc

A few words for emGine! It’s a full-wave 3D electromagnetic field simulation environment solving Maxwell’s equations in time-domain. You create 3D models of your components, put the parameters and then simulate and get your graphs and results. Not 3D FDTD.

Let’s install it then! You are going to need to find and install (if not already installed): tkinter , python, vtk , vtk-devel, wxWidgets (I got wxBase, wxGTK, wxGTK-gl, wxGTK-media installed) , wxPython, numpy and python-matplotlib. Now go to the download page and get the package (emGine GUI platform independent of course) .

As you understand we are going to compile using python. So, go to the emGine folder (like we did in transcalc) and just type in your terminal:

$ python emGine.py

It might take a bit to run, but if nothing is missing the program shoud start. And that’s for the emGine environment.

Now, to the more serious staff. Meep is an FDTD program to model electromagnetic systems! One of my next posts will be an example running a 3D (I hope) simulation (if not a 3D then a 2D). I will try to get the dimensions of a real waveguide, get the parameters from Transcalc, use them on Meep to visualize a cool simulation and maybe see what we can do on a circuit with Qucs.

What did I need to install Meep on Fedora 14?

libctl (new version on the link, or install libctl and libctl-devel version 3.0.2 from yum etc.), hdf5 and hdf5-devel. I think that was all I needed.

Then let’s go to the terminal one last time:

$ export LDFLAGS=”$LDFLAGS -lm”    (this line is needed to avoid the DSO Linking error with libm.so)
$ make
$ make install

Now if you type: $ meep …you should get:  meep>    I tried to make a 2D example to simulate a waveguide. Not the fastest thing I have done in my life 😛

The reference is here. Start the calculations and wait for my 2nd post. (Also, just found it, check this out, there are tools like the japanese ADVENTURE and its modules)