GNU/Linux

Ubuntu 6.10 Annoyance: `failed to initialize HAL` error

18

Ubuntu 6.10(Edgy Eft) worked well for the first few weeks with the most visible change from the earlier version being fast boot up times. It took less than a minute on my system to boot Ubuntu and load the GNOME desktop(with automatic user login enabled). Then I lost the sound on a certain fateful day without being able to understand what could have been the possible reason for it. I got it back by running the amixer command and resetting the volume levels, but lost it again after a few days. Running the same command returned the sound but I have no idea when I am going to lose it again. My concern though is that I am not able to track down what is causing the sound to go dead repeatedly(I hope it is not because of the beta version of the Firefox Flash plugin).

The error that refuses to go away and which seems to have no simple fixes, is the HAL initialization error. I started to get this error after a few weeks since the installation of Ubuntu 6.10, in the form of a pop up window informing that the system failed to initialize HAL. Which meant no automatic mounting of the removable devices: USB hard disks, USB pen drives and CD/DVD discs in my case. After spending some time hunting for a fix on the Internet, going through bug reports and related discussion on Launchpad, surfing through ubuntuforums threads and chatting on IRC channels, I found two possible fixes for the problem:

  1. Disabling the Samba shares in the /etc/fstab file and
  2. Disabling the automatic user login option for GDM.

There are no Samba shares in my /etc/fstab file, so I tried disabling the auto login option for GDM(System -> Administration -> Login Window -> Security; but if you have enabled this option earlier, then you already know how to disable it) and the HAL error was gone. All the removable disks were mounted automatically upon insertion once again. This clearly shows that there is a timing problem which is causing this error, and it goes away when the login process gives enough time for all the initialization to be completed before fully loading the GNOME desktop manager. Which also suggests that using timed automatic login option will also effectively solve the problem: I used a time delay of 5 seconds with automatic login option and HAL is properly initialized with this setting.

Installing Oracle Database 10g Express Edition on Debian/Ubuntu

2

I finally decided to try installing the Oracle Database 10g Express Edition on Ubuntu 6.10 operating system when a CD containing the 10.2 version of the software was shipped with the book from Oracle Press. The book explains the installation procedure in quite a bit of detail, but I soon gave up the temptation to install the software from the .deb package carried by the CD as a later version of the software was available in the online repository. I searched for the repository on the Internet that stores the Oracle Database XE and found the following link on Oracle’s website:
Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu

It becomes a trivial process after going through the above article and adding the specified line in the /etc/apt/sources.list file:

deb http://oss.oracle.com/debian unstable main non-free

Search for ‘oracle-xe’ in the Synaptic Package Manager(Edit -> Search), mark all the necessary packages and click “Apply”.

Install Oracle 10g XE from Synaptic Package Manager

Install Oracle 10g XE from Synaptic Package Manager

Or install simply from the command line using the apt-get command(search for the packages using ‘sudo apt-get update && sudo apt-cache search oracle-xe’ command). The latest version will be downloaded and installed on the system. I encountered a minor problem during the process though: the installation wouldn’t proceed because of the following error:

Oracle Client 10g Express Edition require 1024MB of swap space. This system has 996MB of swap space. Configure more swap space on the system and retry the installation.

The documentation says that the installer checks to see whether 1GB of swap is available if 1GB of RAM is installed on the system. I had given 1000MB as the size for the swap partition(easier to type than 1024) and the installer is dumb enough to stop for 28MB of less memory that expected. After a quick confirmation on the Oracle forum, I added some more temporary swap memory using the following procedure and repeated the installation process.

sh# sudo dd if=/dev/zero of=/tmp/swap bs=1M count=100
sh# sudo mkswap /tmp/swap
sh# sudo swapon /tmp/swap

I needed only 100MB of additional swap space, so ‘count’ might be different for you if you come across the same problem. Once the installation is finished, the swap file can be deleted after running ‘swapoff /tmp/swap’ command to immediately reclaim the disk space(100MB hardly mattered in my case) or one can just wait until the next reboot(and remove the file if /tmp is not automatically cleared on your system). If you need to create permanent additional swap space, then the swap file need to be created at a different location than /tmp and the ‘swapon /where-ever/swap’ command need to be put where it will be executed every time the system boots.

Configuration of Oracle 10g XE

The final step of the installation is to configure the Oracle Database XE. Start a shell and run the following command (you can accept the default values suggested for most of the question by hitting the ENTER key):

sh# sudo /etc/init.d/oracle-xe configure

One question that deserves a careful thought is whether or not you want to start the Oracle Database server automatically at boot time. If you choose to start it up at boot time, it will always be running as a service in the background and consumes resources. If you choose not to automatically start it at the boot time, you have to manually start it whenever you want to access your databases. Setting a password for the standard user accounts ‘sys’ and ‘system’ is also part of the configuration process.

Once finished, the Oracle Database XE server will be running on the port as specified at the end of the configuration process and you can administer the DBMS by pointing your web browser to http://localhost:8080/apex(unless you changed the port number) and logging in using the user name ‘system’ and the password you created during the configuration process. Below is a screenshot of how the administration panel looks like in a web browser.

Adminster Oracle 10g XE in Debian/Ubuntu

Two menu items will also be created containing links to documentation, online forum, and other services provided by Oracle Database XE.

Oracle 10g XE GNOME menu in Debian/Ubuntu

The default menu items created by the Oracle installer were too long to my taste, so I shortened them from the Menu Layout manager(Right-click on “Applications” menu, select “Edit Menus”, right-click the Oracle menu items, select “Properties” and change the text in the “Name:” field).

If you are a Fedora or a Suse user, installing Oracle DBMS has been supported on these platforms for a very long time. Search google for installation instructions.

Gentoo users should checkout the Gentoo Wiki article describing how to install Oracle 10g Express Edition on Gentoo systems. It’s a laborious process though.

After the installation is complete, use the Oracle 10g XE getting started guide available on the Oracle website to learn how to do simple tasks with the DMBS from the web browser interface.

Installing Complete LAMP Stack on Ubuntu 6.10(Edgy Eft)

12

One way to get the complete LAMP(GNU/Linux + Apache + MySQL + PHP) stack installed and configured on Ubuntu operating system is to use the Server install CD version of the distribution. Ubuntu 6.10 Server Edition, for example, provides a menu option during the installation to install a complete LAMP server on the machine. No desktop environment or unnecessary packages will be installed, so this is the preferred way to run a dedicated LAMP stack on a machine. Once installed this way, one can easily login to this machine remotely and tweak the default configuration settings.

For those who would like to run the LAMP stack on their personal desktops(for development and testing purposes for example), selecting a few packages will get all the required components installed. There is an easier way though: Select the LAMP task from the Synaptic Package Manager and install everything with a single selection:

  • Start Synaptic Package Manager, go to Edit -> Mark Packages by Task… and select LAMP Server from the list of options. Click OK and then click the “Apply” button on the toolbar.

This will install the default list of packages that are part of LAMP installation. I prefer to install additional packages too, like GUI tools to work with the databases. The following two commands will install LAMP and some additional packages related to it:

Basic LAMP Installation:

sh# sudo apt-get install apache2 mysql-server mysql-client-5.0 php5 php5-mysql

Additional LAMP related packages:

sh# sudo apt-get install php5-cgi php5-cli php5-gd php5-imagick php5-json php5-odbc postgresql php5-pgsql php5-sqlite php-auth php-doc mysql-admin mysql-query-browser apache2-doc pgadmin3 pgdocs-pdf phppgadmin

To know more about these additional packages, search for them in the Synaptic Package Manager and read their descriptions. Though PostgreSQL is not technically a part of LAMP stack, it is a good alternative to MySQL DBMS and and fits equally nicely with Apache and PHP combination. These are the applications that I install on my machine; to browse through the entire collection of packages related to the LAMP stack, search for ‘apache’, ‘php’ and ‘mysql’ in Synaptic Package Manager(Edit -> Search) and select your own favourite packages to install from the result list. Installing the complete LAMP stack and related packages is similar for Kubuntu operating system, with Adept Package Manager taking the place of Synaptic Package Manager.

Simple Way to Update Ubuntu Edgy With Slow/No Internet Connection

14

One of the biggest hurdles for the already popular distribution Ubuntu in gaining still more popularity all across the world, is the limited number of applications shipped as part of the distribution media. Where most of the distributions provide users with the option of downloading a number of CD/DVDs(Fedora, SUSE, Debian) at one time, Ubuntu follows the philosophy of keeping things simple by offering only 1 CD/DVD worth of software, that includes one popular application per task(one web browser, one text editor, one media player etc), allowing users to download and install additional applications whenever needed from the Internet repositories. Though I personally like this philosophy very much(which is also one of the reasons why I like GNOME more than KDE), this works well only for those users who either don’t require anything more than the installed default applications or those who have a fast Internet connection to download the necessary additional applications. The users with slow/no Internet connection are left wanting in this kind of setup as it is almost impossible to conveniently add more applications to Ubuntu without decent Internet connectivity. This is the primary reason why many of my friends go for the distributions like Fedora or SUSE, or even Debian, rather than Ubuntu or Gentoo, even if they like the latter distributions more.

One workaround for this problem is to follow the elaborate procedure described in my earlier post to update and install new applications on Ubuntu without needing a fast Internet connection. With the latest version of Ubuntu – Ubuntu 6.10(Edgy Eft) – though, the procedure has become fairly straight-forward, thanks to a feature added to the Synaptic Package Manager just for solving this problem. You can get the entire idea by just looking at the two new options present in the File menu in Synaptic Package Manager; otherwise, below is an example of how to install an application on Ubuntu by using the Internet connection of a second machine.

Simple Way to Install Applications in Edgy Without Internet Connection
  1. Start Synaptic Package Manager(SPM). Mark all the applications that you want to install/upgrade in the usual way. For example, go to “Edit -> Search”, enter ‘gnuplot’ in the search field and then press ENTER or click “Search”.
    Search a package in Synaptic Package Manager
    From the list shown, mark ‘gnuplot’ and ‘gnuplot-doc’ pacages for installation. After that, instead of clicking the “Apply” button from the toolbar as you would normally do, go to the File menu and select “Generate Package Download Script” menu option to generate the download script.
    Generate Download Script in Synaptic Package Manager
  2. A dialog box will prompt to save the generated script file. Give it a name like ‘ubuntu.sh’ and click the “Save” button. This script file needs to be carried to a machine which has a fast Internet connection and it needs to be executed there.
    NOTE: It will be convenient if the machine with fast Internet connection runs some flavour of GNU/Linux operating system with wget installed on it. If that is not the case, then one needs to tweak the generated script file(ubuntu.sh in our case) to use whatever command line download manager is available on that machine. The first line may also need to be removed if the script is to be run on a Windows machine. Looking at the contents of the generated script file might give a better idea, as shown below.

    Contents of the Download Script generated by Synaptic Package Manager

  3. Start a shell/command prompt, change to the directory where you want to store the downloaded files and run the script as shown:
    sh# sh ubuntu.sh

    Once the downloads are finished, carry all the downloaded files to the Ubuntu machine and copy them to a new folder(say ‘Downloads’) in the home directory.

  4. Start Synaptic Package Manager again and select the same application(s) that you had selected in Step 1. Select “Add Selected Packages” from the File menu and browse to the folder where you have copied the downloaded files(‘Downloads’ folder in our example). Click “Apply” button from the toolbar. The packages will be installed from the local directory without the need to connect to the Internet.
Additional Notes:
  1. It is always a good practice to first update the Apt cache before marking any packages to be installed/downloaded. This can be done by clicking the “Reload” button in Synaptic Package Manager or by running the command “sudo apt-get update” in a shell. Any way you do it, it requires an Internet connection, how ever slow it might be. If there is absolutely no Internet connection available on the Ubuntu machine(why, oh why, did you chose Ubuntu in the first place ;) ), then you need to keep the cache synchronised with another Ubuntu machine that is frequently updated. See the comment section of my earlier post for more information.
  2. If the machine that has a fast Internet connection is Windows or doesn’t have wget installed, the script file can either be manually edited, or a converted script can be written, to make it work under such an environment. But writing your own script/program to directly generate the download script in required format should be a more productive exercise. A download script similar to what is generated by the Synaptic Package Manager can easily be generated by processing the output of ‘sudo apt-get install command.
  3. Lot of discussion is taking place on how to provide options to upgrade Ubuntu systems offline(snapshots at regular intervals can be released as ISO files, for example), the specification for implementing such a feature is going through active debate among the Ubuntu community members, so if you are interested, you can check out the following pages:

    Offline Updater Specification
    Related Wiki

    CDRom Based Upgrade Specification
    Related Wiki

How to Run Firefox 1.5 And Firefox 2.0 RC3 Side by Side

3

Mozilla has recently announced Release Candidate 3(RC3) of the next version of Firefox – Firefox 2.0. Those who can’t wait for the final version to be released before having a peek at the new features(not too many actually) that will be part of Firefox 2.0 can grab the RC3 version and install it on their systems. For Windows users there is an all familiar wizard based installer file to install it, but remember that it will overwrite the existing Firefox installation, so make sure that you really want to move to a version that is not completely bug free yet(release candidates are fairly stable but of course not as stable as the final version) and you understand that you might have to live with a broken installation if luck is not on your side. In any case, backup the current profile before attempting to upgrade to RC3 so that you can go back to it by reinstalling the stable version if things do go wrong.

The same thing applies to the GNU/Linux users too: grab the tar ball of the RC3 version of Firefox 2.0 and install it on your system(again ). But if you want to minimize the risk of corrupting the current Firefox installation and still want to get a sneak peek into what the next version of Firefox is going to be like, you can just extract the Firefox 2.0 RC3 tar file into a separate folder in your home directory, create a new profile for it and run the new version of Firefox using this newly created profile; this way, you can continue to use the stable version of the Firefox with your older profile. Below is the procedure on how to do this.

NOTE: Remember that we are only trying to use separate profiles with the two versions of Firefox here, they might still share a lot of other files between themselves. That is why it is always a good idea to start with a complete backup of the existing installation. I usually backup the entire “.mozilla” directory present in the home directory like this:

sh# cp -R .mozilla firefox_backup

Download the latest Firefox 2 Release Candidate version and extract it in your home directory(link of the English version is used in the following example):

sh# wget http://www.mozilla.com/products/download.html?product=firefox-2.0rc3&os=linux&lang=en-US
sh# tar xvjf firefox-2.0rc3.tar.bz2

Now we need to load the new version of Firefox with a freshly created profile. Run the following command from the extracted directory:

sh# cd firefox
sh# ./firefox -ProfileManager

From the popped up dialog box, click “Create Profile” button and follow the wizard(enter a name like “firefoxrc3″ when prompted if you wish, or accept the default profile name).

Wizard to create a new profile for Firefox 2.0 RC3

Click Finish to dismiss the wizard box. You can now see the newly created profile being listed in the “Choose Profile” dialog box. Select it and click “Start Firefox” button to start the web browser.

Choose a different profile for Firefox 2.0 RC3

You can customise the environment to the heart’s content now, without worrying about corrupting the older profile. From the next time onwards, just run the command from the Firefox 2 RC3 directory and choose the profile that was created for it. When you want to run the older Firefox version, just remember to pick the default profile and you will get into the same old environment.

The process can be simplified by creating a new desktop/menu/panel item and entering the appropriate command(“$HOME/firefox/firefox -ProfileManager”) in its property box(right click and select properties).

Create a launcher shortcut for Firefox 2.0 RC3

If you don’t want to start with an empty profile for the new version of Firefox, then you need to search the Internet to find a way to make a copy of the existing profile(or have a look in $HOME/.mozilla/firefox folder for hints). You can then let the new Firefox version to use the copy of the default profile instead of creating a new profile for it.

buy prednisone medication COD purchase prednisone without prescription needed purchase prednisone prescription online prednisone no prior script prednisone no rx needed order prednisone usa cod buy prednisone without rx from us pharmacy buy prednisone online without rx purchase prednisone without prescription order prednisone saturday delivery buy prednisone amex online without prescription ordering prednisone over the counter buy prednisone amex online without rx ordering Paxil over the counter order Paxil without rx needed order Paxil pharmacy Paxil overnight delivery fed ex ordering Paxil without a script order Paxil order amex order Paxil amex online without prescription buy Paxil pay pal without prescription order rx free Paxil cheapest Paxil available online purchase Paxil without purchase Paxil without prescription how to order Paxil online without a prescription purchase Paxil cod next day delivery buy discount Paxil online buy Paxil no visa online without rx prednisone cheap overnight fedex purchase Strattera usa cod where to buy accutane buy frontpage software cheap mortgage application software buy autocad software best price for final draft 7 software iphone software download plagiarism software to buy for parents Crestor side effects buy masterwriter software discount bmi sesac microsoft software downloads wm5 software download treo software download cheap discount software xxasdf discount trellian software best antivirus software download cheap microsoft word software buy software for mac software discounts for educators microsoft office buy windows xp oem software buy flash cs3 software photoshop cs 5 full fashion conference italy buy Orlistat with amex ordering Lasix over the counter purchase online prescription Lasix without windows 7 product key purchase online cheapest xenical available online prescription xenical online online Maxalt achat Maxalt Zithromax uk sales where to buy Valtrex by cod where to purchase generic valtrex online without a prescription quality generic valtrex cheap valtrex usa (no prescriptions needed for Buspar|buy Buspar with no prescription|online pharmacies Buspar|Buspar cheap|buy Buspar without rx|purchase rx Buspar without|Buspar purchase online|purchase Buspar online without rx|purchase Buspar free consultation|buy Buspar Online|buy Buspar american express|buy Buspar Online|buy cheap Buspar with dr. prescription|Buspar side effects|fedex Buspar without priscription|overnight Buspar without a rx|order cheap overnight Buspar|Buspar toronto|uk order Buspar|Buspar no doctors prescription|Buspar mexico|Buspar order|no prescription Buspar with fedex|order generic Buspar|buy Buspar without rx from us pharmacy|prezzo Buspar|Buspar 10mg|Buspar from canada|purchasing Buspar without a script|buy Buspar australia|purchase Buspar visa without prescription|online purchase Buspar|buy Buspar no perscription cod|buy Buspar drugs|buy Buspar with visa|buy Buspar without rx needed|buy Buspar without prescription|buy Buspar no prescription low cost|purchase purchase Buspar no prescription cheap buy cheap Nolvadex cod buy Nolvadex infertility in internet visa at Wisconsin Ontario omicrosoft office 2003 megaupload online purchase Lasix Buy genuine accutane online buy Cytotec online no rx Cytotec online buy nolvadex amex online where to buy synthroid in germany where to buy synthroid pills cheap discount Nolvadex overnight Accutane 20mg mexico order Lasix usa Lasix overnight delivery fed ex buy zithromax overnight purchase online prescription zithromax without buy Nolvadex cheap cheapest Nolvadex available online buy Nolvadex without rx from us pharmacy buy Nolvadex without a prescription overnight delivery buy 20mg Nolvadex free shipping buy Nolvadex no prescription order zithromax overnight delivery buy zithromax 100 mg visa Valtrex without doctor prescription buying zithromax over the counter order zithromax with no prescription order zithromax 250mg mastercard order zithromax 250 mg visa order zithromax 500mg amex buy mail order Orlistat buy Valtrex online now Orlistat tablets purchase cheap Maxalt onlinebuy generic Maxalt pills free fedex delivery Buspar buy cheap Finpecia under without rx purchase online finpecia without rx finpecia fedex no prescription buy line finpecia generic Crestor uk Buspar u.p.s shipping cod order cheap overnight Buspar free fedex delivery prednisone prednisone no script fedex buy valtrex cheap without prescription generic Valtrex fedex Online overnight shipping Valtrex purchase Zithromax without purchase Zithromax no scams Arimidex delivered overnight order cheap overnight Arimidex purchase Cytotec over the counter fedex buy Cytotec online overnight adobe financial results microsoft office professional 2007 upgrade download microsoft office professional 2007 cheap Buspar by money order how to buy Valtrex without a prescription cheap valtrex uk buy Flomax in the uk purchase Proscar usa cod adobe lm service adobe after effects simple creativity latest adobe flash download buy Crestor amex measurement software Photoshop For Sale buy discount Tamsulosin line Autocad 2010 Review download adobe premiere complete removal of office 2003 adobe indesign cs2 photoshop lightroom 3 cheap where can i buy herbal Crestor where to buy Crestor buy Crestor online cod Buy Fincar online 5 mg mastercard cheapest price for microsoft office vio software discount coupon purchase Orlistat amex online without prescription buy maxalt online without a prescription adobe photoshop 6 cd key Cheap Software Buy Downloads For Photoshop flash catalyst sql ms office 2010 enterprise windows 7 upgrade oem Windows Server 2003 Standard Edition Downloads For Windows 7 Ultimate Buy cheap Valtrex without a perscription application free download office microcoft2007 buy Crestor drugs Valtrex no prescription purchase Valtrex amex online without prescription Xenical Orlistat Flomax buy on line boilsoft viseo create new instrument logic studio 9 cheap purchase finpecia buy Strattera no prescription low cost Flomax best buy buy cheap oem software formica countertop cyberlink power dvd 9 download buy Prednisone no prescriptions cheap indesign cs android acdsee buy Flomax australia generic Valtrex online lightroom license .txt download de driver para corel windvd buy microsoft office online cheap generic Valtrex online buy Flomax online no prescription buy pharmacy Flomax waterview ifinance price price of valtrex buy valtrex doctor prescription buy generic Crestor order generic Tamsulosin imtoo dvd ripper serial look like buy Buspar without a rx cheap digital video want to buy Buspar in malaysia buy Crestor now buy Valtrex without a rx purchase rx Valacyclovir without Bupropion buy Bupropion buy no perscription Amitriptyline buy discount Zithromax cheapest Zithromax available online how to order Buspar online without a rx purchase prednisone cod next day delivery where can i purchase prednisone online prednisone online cash on delivery microsoft office 2010 3 user license cheap mac desktops no prescription Orlistat cod delivery Work Order Tracking System Acrobat 6.0 Professional Oem Version Windows 7 buy Valtrex where order Orlistat no rx cheap proffes Microsoft Windows Xp Purchase buy Valtrex legally buy cheap Proscar without prescription Windows Xp Server buy cheap online pharmacy Buspar buy Prednisone online now generic Zithromax usa accutane 40 mg delivered overnight buy accutane 40 mg with no prescription media 8 oline cheap cs software Discount Microsoft WindowsLightroom 2 Windows 7Ms Office StandardPhotoshop Cs5 UpgradeComputer Monitors For SaleWindows Xp InstallSuite Microsoft OfficeAutocad Version 2007Adobe Acrobat 9.0 Standard DownloadIe8 Download For Windows 7Adobe Paint ShopMicrosoft Service Pack 2Free Download Adobe AcrobatStudent And Teacher EditionManage ImageAdobe Acrobat 7 Pro DownloadVista Home Premium To Windows 7 UltimateWindows 7 Home Premium Upgrade OemAdobe Creative Suite 5 Master Collection Student And Teacher EditionBuy Adobe Photoshop Lightroom 3Ms Office 2010 Home And StudentCompare Photo SoftwareMicrosoft Office Word Viewer 2010Windows 7 Upgrade Student Discount ProfessionalWindows 7 Updates DownloadCreative Suite WebAdobe Reader VistaMicrosoft Windows 7 Home Premium Upgrade 64 BitPhotoshop 2Ie8 Download For Windows 7Photoshop 2009Suite Microsoft OfficeMicrosoft Office 2007 VersionUpgrade Windows Vista To 7Autocad Lt 2010Autocad 2010 Best PriceDownload Acrobat Reader 8 buy Flomax online us pharmacy cheapest Buspar available online where can i purchase Buspar without a prescription sony oem software Valtrex from india Maxalt pharmacy Prednisone prescription order Buspar shipped by cash on delivery purchase Proscar online with overnight delivery buy Valtrex with no prescription prezzo Valtrex buy Valtrex shipped cod Proscar no prescription overnight Proscar overnight no consult where to purchase cheap Cytotec no rx Cytotec to buy canadian prescriptions prednisone where to buy Prednisone online Prednisone buy Prednisone Proscar online no rx overnight where can i buy Valtrex online without a prescription buy valtrex legally order Valtrex without a rx overnight shipping c.o.d prednisone purchase Prednisone money purchase is it legal to buy Cytotec online in australia buy Cytotec cheapest buy finpecia without prescription finpecia buy cod want to buy finpecia in malaysia buy finpecia with mastercard Buy Finpecia 1 mg online microsoft onenote and educator discount window mirror film charset windows 1252 reinstal windows finpecia overdose excel new window windows for loop microsoft office 2008 for mac home student cheap collection software virtual dj software web design software mac cheap or discount photoshop software load windows xp buy Orlistat legally Rosuvastatin generic order buspar pharmacy buy Flomax in mo dreamweaver cs4 windows mobile opera adobe photoshop price epson creativity suite
Go to Top