Monday, January 26, 2015

Reset Samsung 3D BluRay Player

  1. Power on your Blu-ray player and tune your TV to the input where the Blu-ray player is connected. For example, if the Blu-ray player is connected to HDMI 1 press the TV input/source/line button to tune your TV to HDMI 1.
  1. Remove any disc from the player and then press and hold theStop button on the front of the player, not the remote, for about 8 seconds or until the front display reads ‘SETUP’. 'Resetting all settings to default values...' is displayed on your TV screen as the Blu-ray player powers off and resets.
  1. The Blu-ray player is automatically powered on after the reset and the select Language screen is displayed.

Saturday, January 24, 2015

HTML5

HTML 5

HTML 5 is just the continuing evolution of content presented on the Internet. It adds some new elements, and obsoletes others, but it isn't a radical change from earlier versions. The W3C lists these differences.

WHATWG and W3C

There are two different standards of HTML 5.  Web Hypertext Application Technology Working Group (WHATWG) publishes what is called a "Living Standard" and was created in response to the slow pace of progress by the World Wide Web Consortium (W3C).

New DOCTYPE

To distinguish a document as HTML 5, the first thing contained in that document should be:
<!DOCTYPE html>
 

New Semantic Elements

The following are new elements added to HTML 5 to better organize content with meaning:
article, aside, footer, header, nav, and section. Instead of using meaningless div elements to divide up the document, these elements should be logically used.

New Input Elements

There are many new input element types, email and number.

New Editing Elements

To represent text added later use ins and text that should be removed use del elements.

New Audio

New Video

New Canvas

Presentational Markup

It is better to separate the presentation of the text from the text itself by using CSS. This helps to make the document smaller, easier to maintain, and easier accessibility.

HTML5 removes presentational markup language with the exception of the and i which are now intended to represent text that is stylistically different. Of course, as shown above most browsers will render them bold or italic, but it is recommended to use a class, so that CSS can be used to define alternative styles.

JavaScript

Current standard is ECMAScript 5.1 (ES5)
ECMAScript 6 is under development (ES6)
Remember to avoid side-effects:

  • Objects are assigned by reference.
  • Primitives are assigned by value.
  • All function arguments are passed by value
  • Variables declared with var have a function level scope 
  • Variables declared with let will have a block level scope in ES6

Primitives include:

  • numbers
  • strings
  • null
  • undefined
  • true
  • false


Vulnerabilities to Avoid

Cross site scripting (XSS) - Not validating user input. If combined with a database, may be used to SQL injection.

Cross site request forgery (CSRF) - If origin headers are not validated from forms or other user specific tokens embedded in forms, then they may be posted from other sites, often without the user's knowledge.

Clickjacking - pages should check if they are being "framed" with an iFrame by comparing the window object with top.

Do's and Don'ts

Do's:

  • Start with base functionality and use progressive enhancement and graceful degradation
  • Use a layered architecture separating HTML, JavaScript and CSS. 
  • Use a library like jQuery or Dojo to ease platform and browser differences
  • Use well-known design patterns
  • To ensure events fire for specific elements to run a script, the script should be attached directly to the element.

Don'ts:

  • Pollute the global namespace 
  • Modify the Object class prototype
  • Pass strings, use functions to pass to setTimeout and setInterval 
  • Use document.write 
  • Use reserved JavaScript keywords:
    • break do instanceof typeof
    • case else new var
    • catch finally return void
    • continue for switch while
    • debugger function this with
    • default if throw
    • delete in try
  • Use future reserved JavaScript keywords:
    • class enum extends super
    • const export import
  • Use future reserved JavaScript keywords in a strict context:
    • implements let private public yield
    • interface package protected static

Advanced Perl Notes

Advanced Perl Notes

Like many of my blog entries, Advanced Perl Notes is my own list of notes on a subject.  It is one of the worst organized.

Using &subname defaults to call a subroutine in the current package.

Class methods are package methods in the form: PackageName->MethodName();

The my variables are not scoped to a particular package

$VERSION must be placed in a package that has the same name as the file (without the .pm)

File names conventionally match package names

Loading a Perl module like Module.pm with use Module happens at compile time, but loading a module with require Module happens at runtime.

Perl libraries like syslog.pl can be loaded with do syslog.pl  or require syslog.pl.  Require does error checking, and is preferred.  Libraries have difficulty using other libraries so modules are preferred.

Along with references and modules,  Perl release 5.000,  added objects.  

When you use the ref function on an object, it will return the name of the class it belongs to.

sub class_only_method {
    my $class = shift;
    die "class method called on object" if ref $class;
    # more code here
} 

If you want to allow a particular method to be called as an instance method only, do something like this:
sub instance_only_method {
    my $self = shift;
    die "instance method called on class" unless ref $self;
    # more code here
} 

To format dates and times:
use POSIX 'strftime';
print strftime 'Today is %x', localtime



Gnome 3 Desktop Tips and Tricks

Gnome 3 Desktop Tips and Tricks

In updating to RHEL 7 / CentOS 7, I found myself having to live with the Gnome 3 Desktop.  Fortunately, Red Hat has documentation available at DESKTOP MIGRATION AND ADMINISTRATION GUIDE.  As I've been reading through this documentation and other sources, I'll be sharing the helpful tricks and tips that I find.

First, as you might read this documentation, you should know that when they refer to the SUPER key, they mean the Windows key on your keyboard.  Here are some of the shortcuts:

Shortcuts

 SUPER + m :  Display the message notification panel, and press ESC to return to normal view
                        This also happens when you point and click at the bottom of the screen, click again to return 
 SUPER + Tab:  Display window switcher


Desktop Customization

In the current desktop environment, you can customize the desktop by using the dconf-editor.
The dconf-editor package is not installed by default, and gives you access to be able to edit the settings of the desktop.  This tool replaces the gconf-editor that was used in Gnome 2 Desktop.  To install the tool you will need to have set yourself as an administrator during installation, or know the root password.

If you have been set up as an administrator, then you can execute and provide your own password:

sudo yum install dconf-editor

Otherwise, if you know the root password, then you can execute and provide the root password:

su -c 'yum install dconf-editor'

After executing as the user whose desktop you want to customize:

dconf-editor

Then, you can navigate the tree on the left to org.gnome.desktop and then click on settings on the right to change your desktop settings.  For example you can click on the background and provide a simple file URI to change the desktop from the default xml file.  

For example, clicking on org, then gnome, desktop, and then background on the left, you could then click on picture-uri on the right.  The default setting is an xml file named file:///usr/share/backgrounds/default.xml, but you could set it to something like file:///home/kwright/Pictures/Wallpapers/_DSC1468.png. By the way, an easier way of accomplishing the above is to locate the picture you want to use as a wallpaper, and then right-click on it and choose 'Set as Wallpaper'.

If you liked icons on your desktop, like in the Gnome 2 Desktop environment, then in the same org.gnome.desktop.background part of the dconf-editor, you can select show-desktop-icons.

The org.gnome.desktop.interface selection of the dconf-editor has some nice customization options for the clock like being able to show the date and display a 12 hour clock.

One feature I went looking for and could not find within the standard interface was a way to control how long my session was idle before the screensaver came on.  You can adjust this time by going to org.gnome.desktop.session and selecting idle-delay and entering the number of seconds to delay.

Finally, if you want to lock down what a user can do, then you can go to the org.gnome.desktop.lockdown part of the dconf-editor and lock down the ability of the user to do things such as print, change the print setup, access the command line, and save to the disk among other options.

Gsettings

The gsettings command can be used to get, set and query different keys and schemas. It's main utility is that you can use it in scripts to automate the process of customizing settings. Otherwise, the dconf-editor provides a more user friendly interface, and is easier to explore.

Getting a Key

If I had set the custom background as shown above, then using the following gets what the key picture-uri is set to within the org.gnome.desktop.background schema:

gsettings get org.gnome.desktop.background picture-uri
'file:///home/kwright/Pictures/Wallpapers/fireworks.png'



Setting a Key

To change the value of the same key, again there will be a space between the schema and the key, but using the sub-command set instead of get:

gsettings set org.gnome.desktop.background picture-uri  'file:///home/kwright/Pictures/Exports/2greatblueherons.jpg'




For keys that have a checkbox in the dconf-editor, you can use the value true or false to mean the box is checked or not.  For example, to display the icons on the desktop, you could use true as the value for the show-desktop-icons key:

gsettings set org.gnome.desktop.background show-desktop-icons true


Listing the keys

To list the keys of the org.gnome.desktop.background schema, you can use the list-keys sub-command:

gsettings list-keys org.gnome.desktop.background
color-shading-type
picture-opacity
picture-options
picture-uri
primary-color
secondary-color

show-desktop-icons

For more details about using gsettings, execute:

 man gsettings


Gnome Classic Desktop

Each user can choose whether they want to use classic desktop, which is more like Gnome 2 than Gnome 3, or the real Gnome 3.  By default users login with the classic desktop.  At the graphical login screen, you can click on the settings icon, which looks like a small gear, and choose which installed desktop they want to user.

To switch to the classic desktop for a session, from the command line you can execute:

gnome-shell --mode=classic -r &

If you are in a classic desktop, and want to use the current Gnome 3 desktop, then you can execute:

gnome-shell --mode=user -r &

For making a permanent change to which desktop a user will have, the file /var/lib/AccountsService/users/username can be modified.  The contents of this file on my CentOS 7 system looked like this:

[User]
Language=en_US.utf8
XSession=gnome-classic
SystemAccount=false

Notice that the XSession is set to gnome-classic.  By default, users user the "classic" desktop.  In order to make the desktop use the true Gnome 3 desktop, then this file would look like the following with the XSession set to gnome.

[User]
Language=en_US.utf8
XSession=gnome
SystemAccount=false

After updating the file, the user will need to log out and back in again.

Locking Down Settings

If you want to lock down certain settings, and then you can create the following directory by executing as an administrator:

mkdir /etc/dconf/db/local.d/locks/

Next, create a file named something like 00-local-lockdown.  Its contents should be any keys that you want to lock down like the following:

/org/gnome/desktop/background/picture-uri
/org/gnome/desktop/session/idle-delay

After creating the file, execute as root or with sudo:

dconf update


Friday, August 22, 2014

Python Decorators

Python Decorators

What are Python decorators?

Python decorators are special syntax of the language that allows for functions to be applied to other functions or classes. The Python Enhancement Proposal (PEP) 318 describes the syntax used by these decorators as applied to functions. The Python Enhancement Proposal (PEP) 3129 describes the syntax used by these decorators as applied to classes.

The first use of decorator notation of @function_name appeared in Python 2.2.  The decorators for class methods and static functions were created so instead of using the following for a classmethod or a staticmethod: 

class Foo(object): 
    def bar(cls):
           pass
    bar = classmethod(bar)

class Biz(object):
    def baz():
        pass
    baz = staticmethod(baz)

The new decorator syntax allows you to call the __builtins__ functions, classmethod() and staticmethod() by using an @function_name syntax. This applied either the classmethod or staticmethod built-in functions to the function that followed the @function_name syntax.

class Foo(object): 
    @classmethod
    def bar(cls):
           pass

class Biz(object):
    @staticmethod
    def baz():
        pass

PEP 318 also proposed and extended this syntax to be able to be used by user defined functions.  PEP 3129 also extended this syntax to be able to be used by user defined classes. 

Properties

Properties are a special case of the use of decorators. In the case of properties, the property function gets called on the function that is either a attribute setter, getter, deleter method of a class. The following two examples are equivalent

class C(object):
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x
    def setx(self, value):
        self._x = value
    def delx(self):
        del self._x
    x = property(getx, setx, delx, "I'm the 'x' property.")

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

Examples of decorators

There is a repository containing numerous examples at https://wiki.python.org/moin/PythonDecoratorLibrary.

Tuesday, June 3, 2014

How to network between to VirtualBox virtual machines

How to network between to VirtualBox virtual machines


The problem is that the default NAT networking assigns every machine 10.0.2.15.
NAT works well for Internet access, but not to connect to other virtual machines.

Change the Network adapter to Bridged and then select an active adapter from the host on both guests.
Configure each guest with a unique address that is on the bridged network.
Bridged will allow for virtual machines to connect to each other, but not necessarily to the Internet.

Configure two interfaces: one NAT and one bridged for the best of both worlds!

Thursday, September 12, 2013

Bash Shell Math

While the bash shell can only do integer arithmetic, it can do it in several ways:
Double Parenthesis, Dollar Square Brackets. the let statement, and command substitution of expr which was used to arithmetic in the original Bourne Shell, sh.

Double Parenthesis

x=$(( 5 * 3 )) ; echo $x
15

y=$(( $x / 4)) ; echo $y
y=$(( x / 4)) ; echo $y # dollar is optionaly
# Floor division rounds down always

Increments/Decrements
y=0
((y++)) ; echo $y
1
((y--)) ; echo $y
0
((++y)) ; echo $y
1
((--y)) ; echo $y
0
((y+=2)) ; echo $y
2
((y-=2)); echo $y
0

Different Base Numbers
x=$((2#0101)) ; 
echo $x
5
x=$((16#ff)) ; echo $x
255
Also:
echo $((0xff)) # hexadecimal
255
echo $((0Xff)) # hexadecimal
255
echo $((077)) # octal
63


Dollar Square Brackets

x = 0
x = $[ $x + 1 ]
echo $x
1

let Statement

The let statement is special in that expressions can dereference the value of a variable without using the dollar symbol. For example,
ec
let x=3
let y=4 + x
echo $y
7

expr Command Substitution

x=`expr 3 + 4`
echo $x
7



Ad Word Soup: Decoding the acronyms CPA, CPC, CPI, CPM, CTR

Ad Word Soup: Decoding the acronyms

Others may go into greater detail, but here's what the acronyms mean that are used in on-line advertising.

CPA - Cost Per Action

CPA is cost per action or payment for when user acts upon an ad

CPC - Cost Per Click

CPC is cost per click or payment for when a click on an ad occurs

CPI/CPM - Cost Per Impression(s)

CPI is cost per impression
CPM is cost per 1000 impressions

CTR - Click Through Rate

CTR is the number of clicks divided by the number of impressions times 100. 
It is normally expressed as a percentage. For example,
If 5 people click out of 100 impressions, then the CTR would be 5%. 

Click Fraud

Fraud is a problem, as well as people gaming the system 

What Advertising Model To Use


Saturday, May 25, 2013

Verizon Samsung Galaxy S4 Root, Recovery, ROMs, More...

Verizon Samsung Galaxy S4 Root, Recovery and ROMs

Root

The  Samsung Galaxy S4 has only been out on Verizon a few days, and it's already been rooted. The http://www.sxtpdevelopers.com site already has a good forum going.  Despite Verizon's attempt to harden the kernel to prevent the Motochopper exploit that is used from working, the exploit works by first loading an earlier version of the kernel, then running the exploit, then reloading the latest kernel.

Recovery

There's a new set of tools for flashing kernels and recoveries that works around the locked bootloader on the Galaxy S4 called Loki. While I've not downloaded the source code yet to use it, it's my understanding that the recovery installed by GooManager uses this set of tools.

So, after you've got root, go get GooManager and you can install the Team Win Recovery Project (TWRP) recovery.

The sex tape developer's site also has a CWM recovery under development as discussed in this forum. It looks like in order to try this one, you'll need to download and build the Loki tools.

ROMs

Perhaps the most important ROM of all is out at the sex tape developer's site, the stock unrooted original ROM. At this point, there are several other proof of concept ROMs under development there as well, but nothing that looks ready to really use yet.

Of course, if you want to go looking for ROMs, a good place to go is always the xda-developers.com site. Today, the Verizon Samsung Galaxy S4 forum is at the top of the list! So far, I've only one ROM here, a stock rooted odexed and deodexed.

Kernels

The kernel from Faux123 is out for all US and International versions of the Galaxy S4. I just downloaded from this thread.

Google Wallet

Similar to getting Google Wallet working on the Samsung Galaxy S3, the S4 requires a /system/build.prop hack, flashing a deodexed ROM, loading the Xposed framework, and applying an Xposed framework patch. 

This XDA thread was started for T-Mobile, but can be followed except that before beginning you will want to download a deodexed ROM for your carrier of the device, like the Verizon one mentioned in this thread from XDA Developers. Basically, this will make your phone look like a Sprint Galaxy S4 device, which has access to the app. Once the app is installed and working, you can revert your build.prop back to the original.

Repositories

I stumbled upon this repository which has many of the files that you need, not just for the S4, but many other Samsung devices as well.

Wednesday, May 1, 2013

GRUB 2 Bootloader

While GRUB Legacy received it's last update in 2005 to 0.97, it will probably be around for several more years. Meanwhile, GRUB 2 has begun to replace GRUB in progressive distributions like Ubuntu and Fedora. The new GRUB, GRand Unified Bootloader, offers several advantages:
  • Dynamically loaded modules
  • Non-ASCII character support
  • Ability to boot from partitions inside of Logical Volume Management (LVM) or RAID
  • Ability to work with many architectures without a PC BIOS
As in previous posts, what I will describe pertains to Fedora. Notably, Fedora uses /boot/grub2/grub.cfg instead of /boot/grub/grub.cfg that I've seen mentioned for Ubuntu-based distributions.
Previously, GRUB stored it's components under /boot/grub and was primarily configured with either /boot/grub/menu.lst or /boot/grub/grub.conf.

Now, GRUB 2 uses several locations for it's files:
  • /boot/grub2
    • Contains many module files
    • grub.cfg which should not be edited manually
    • grubenv another configuration file which should not be edited
  • /etc/default/grub
    • contains the entries for creating a default boot entry
    • typically where customization will be done
  • /etc/grub.d directory
    • contains scripts that are run by grub2
    • scripts can be customized or added
    • Contains the following executable scripts: 
      • /etc/grub.d/00_header
      • /etc/grub.d/10_linux
      • /etc/grub.d/20_linux_xen
      • /etc/grub.d/30_os-prober
      • /etc/grub.d/40_custom
      • /etc/grub.d/41_custom
      • /etc/grub.d/90_persistent
  • /usr/lib/grub/directory
    • Stores a couple of library files
  • /sbin/grub2-mkconfig
    • Used to regenerate the /boot/grub2/grub.cfg
Here's what the /etc/default/grub looks like in Fedora 16:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
# GRUB_TERMINAL="serial console"
# GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600"
GRUB_CMDLINE_LINUX="quiet rhgb"
GRUB_DISABLE_RECOVERY="true"


There are just a few of entries in this file that might need customization:
The GRUB_TIMEOUT is how many seconds before the default is booted. Some people might like more time than this, particularly if dual booting operating systems.

The GRUB_CMDLINE_LINUX contains the parameters that are passed to the Linux kernel. Occasionally, some systems might require additional parameters be passed, so this might also be customized.

Also, the GRUB_TERMINAL and GRUB_SERIAL_COMMAND might be uncommented to provide a serial console.




Friday, April 5, 2013

Installing Google Wallet on Verizon Galaxy S3

No fancy installer is necessary to get Google Wallet to work on the Galaxy S3 on Verizon, on a few minor edits to the /system/build.prop are required. Installing Google Wallet is possible on the Verizon Galaxy S III, if your phone appears as a Galaxy Nexus. Assuming you have rooted your phone, and installed a decent version of busybox, then you can execute in a root shell on the phone(at your own risk).:

cp /system/build.prop /mnt/extSdCard/build.prop.original
mount -o remount,rw /system

Use sed to edit the /system/build.prop
sed -i 's/ro\.product\.model.*/ro\.product\.model=Galaxy Nexus/' /system/build.prop
sed -i 's/ro\.product\.name.*/ro\.product\.name=yakju/' /system/build.prop
sed -i 's/ro\.product\.device.*/ro\.product\.device=maguro/' /system/build.prop
mount -o remount,ro /system
reboot

or use vi to make the following changes in /system/build.prop from:

ro.product.model=SCH-I535
ro.product.name=d2vzw
ro.product.device=d2vzw

to

ro.product.model=Galaxy Nexus
ro.product.name=yakju
ro.product.device=maguro

Save your changes (:wq)
mount -o remount,ro /system
reboot

With the modified build.prop can install Google Wallet from the market.
When the installation is finished and you have successfully configured Wallet, 
you can revert to the original /system/build.prop with:

mount -o remount,rw /system
cp /mnt/extSdCard/build.prop.original /system/build.prop
mount -o remount,ro /system
reboot

Monday, March 18, 2013

Windows 8 and Linux on a Toshiba Satellite Laptap

 Windows 8 and Linux on a Toshiba Satellite Laptap

About a week ago, I got a new laptop: a Toshiba Satellite C855D-S5351. With the $50 rebate and $120 instant savings available on it at Office Depot, I thought it was going to be a great deal for $329. Perhaps, if I only wanted to run Windows 8 on it, I would be satisfied, but because I also want to run Linux on it, I've had to struggle to get a few things working.

First, in order to make Windows 8 livable, I would recommend installing Classic Shell. You can download it from  http://www.classicshell.net/. As shown in the screenshot, Classic Shell not only provides the Start Menu that is missing in Windows 8, but a greatly improved Windows Explorer. The menu can even look like the version of a Windows Start Menu that you like the best. I really like locating things where they always have been in Programs or the Control Panel, as well as the Windows key on your keyboard will now activate this menu. When you want to go to the Windows Metro look, you can either Alt-tab to the App, or move over the right side of the screen, and activate the Start icon.

Preparing to Install Linux on a Windows 8 System


Before you do anything to your hard disk, you should make a "Repair Disk Windows 8 64bit". Point to upper right, click the Search icon, select Settings, and then click in the box to type "drive". Choose the option to create a recovery drive. It can be a USB disk, CD or DVD.  Warning: If you don't create a Repair Disk, then Windows 8 may not boot and it may not be easy to fix.  You should also create a new Repair Disk after successfully completing any changes to your hard disk.

Although I didn't make the recovery disk until after I got in trouble installing Fedora 17, I was able to get Windows 8 to boot after installing Linux. I was able to get it to recover by using a Live GParted CD. After booting the CD, I right clicked the Windows Recovery partition, and I set it the flags on it to include "boot". You may not be so lucky!

Create Space to Install Linux Using Disk Management

In order to get Linux installed to begin with, I first had to create some space on the laptop. I searched in Settings for "Disk Management". Start the Disk Management tool with the descripton "Create and format hard disk partitions".

Select the largest partition and right click to choose to shrink it.

At minimum, you will want to shrink it by at least 10Gb, but with a 640Gb hard drive, I was able to shrink mine by about 400Gb.

Next, to be able to boot the DVD to perform an install, I used the following procedure to switch to BIOS, disable Secure Boot, enable CMS (compatiblity booting), and boot an install DVD.

At first I tried installing CentOS 6, and it succeeded nicely, but without ethernet support by default. I never got wireless working, although I think it may be possible using the compat-drivers discussed below.

When I quickly tired of the lack of available current packages from CentOS 6 (and other related repositories), I wanted to upgrade to Fedora. I tried the latest Fedora 18, but unfortunately, the brand new installer failed. So, next I tried the Fedora 17 DVD install and it succeeded. I was able to get ethernet, wireless, bluetooth, radeon, and other drivers working successfully.

Booting From Windows 8 to Linux

After booting, click the screen or log out of your account
Click the power icon in the lower right corner and choose Restart
Press F2 when Toshiba logo appears
Use arrow keys to navigate to Security menu
Go down until you arrive at Secure Boot
Press Enter to change the value, use arrows to change to Disabled, press Enter to go back
Up to the top, over to the Advanced menu
Down to System Configuration, and press Enter.
Down to Boot Mode
Press Enter to change to value to CMS Boot, and Enter to go back. (Press F10 and Enter)
Press Escape to go back to the top level menus.
Go up and over to the right to the Exit menu
Select Exit and save changes

When you want to come back, then follow this procedure:

Booting From Linux to Windows 8

Restart
Press F2 when Toshiba logo appears
Over to the Advanced menu
Down to System Configuration, and press Enter.
Down to Boot Mode, and press Enter
Use arrow keys to change to value to UEFI Boot, and press Enter
Press Escape to go back to the main menus
Go up and over to Security menu
Down arrow until you arrive at Secure Boot, and press Enter
Use the arrow keys to change the value to Enabled and press Enter  (Press F10 and Enter)
Go up and over to the right to the Exit menu
Select Exit and save changes
Boot into Windows 8

Ethernet networking

The Atheros ethernet device is shown on the PCI bus with lspci -nn as:
01:00.0 Ethernet controller [0200]: Atheros Communications Device [1969:1090] (rev 10)
There is no driver for this device yet in the kernel,  although one is proposed according to http://www.linuxfoundation.org/collaborate/workgroups/networking/alx.

From this document I found the source that is used to make the alx.ko kernel module needed for wired networking. The procedure there will only enable the ethernet driver, but not the other compat-drivers. Once built, this alx kernel module worked well in Fedora.

If you only want ethernet support then the procedure to build the module with the compat-drivers download is:


./scripts/driver-select alx

make

sudo make install

Making (Almost) All the compat-drivers 

Since the radeon driver is already working in Fedora, and the one from the compat-drivers doesn't work  so well, I didn't want that driver to be built and installed. So, I commented out building the radeon driver in the   drivers/gpu/drm/Makefile.

I did want to have the wireless driver built, but there was a problem in the source I downloaded with building another wireless driver (wil6210), so building all the drivers wasn't working. Since I didn't need this driver, I commented out building the wil6210 driver in ./drivers/net/wireless/ath/Makefile, as explained below.

Getting Wireless and Wired Ethernet Working 

The Toshiba Satellite C855D-S5351 laptop that I using has a Realtek Wireless network interface which uses the rtl8723ae kernel module as a driver. This driver is also not included in the main stream kernel,, but is a part of the compat-drivers package.

In order to build everything except the radeon driver and the wil6210 wireless driver that refused to build, I made the following changes:

First, to not build the radeon driver, the file ./drivers/gpu/drm/Makefile had to have the line changed  from:
obj-$(CONFIG_COMPAT_DRM_RADEON)+= radeon/
to by adding a # at the beginning of the line:
#obj-$(CONFIG_COMPAT_DRM_RADEON)+= radeon/


Second, in the ./drivers/net/wireless/ath/Makefile, the following line originally appeared as:
obj-$(CONFIG_WIL6210) += wil6210/
To stop building this driver a # was added to the beginning of the line like:
#obj-$(CONFIG_WIL6210) += wil6210/


Once these changes are made to the two Makefiles, then you are ready to build and install the drivers with:
make
sudo make install

Centos/Redhat

Although I had no success getting the compat-drivers to be built under Centos or Red Hat Enterprise Linux, I found a couple of potential solutions. There is a repository compatible with RHEL that exists at http://people.redhat.com/sgruszka/compat-wireless.repo.

Also, there is the "El Repo" repository for the ethernet driver, and instructions for configuring this repository at http://elrepo.org/tiki/tiki-index.php. Using another Internet connected machine, I did successfully use this repository to download the kmod-alx driver and get it to work with Centos 6.

Fedora 17

Installation of Fedora 17 did present one challenge. The installer would not continue past custom partitioning (I wanted to preserve my /home partition). It complained about not having a BIOS Boot partition for Grub 2. The installer would automatically create this partition in automatic partitioning mode, but provided no way to do it manually in the custom partitioning mode.

With UEFI, systems don't use a "MS-DOS Partition Table" on the hard drive, instead they use "Guid Partition Table" or GPT type. The partitioning tool fdisk does not work with GPT partitions, so something like parted or gparted needs to be used instead. Since parted can be very challenging and unforgiving, I decided against using it, even though I could access it from the installation shell.

The solution I used instead to create a special partition with the boot_grub flag set was a Live CD version of Gparted from http://gparted.sourceforge.net/download.php. Once the CD was booted, I  created a 10Mb partition, and right-clicked it to set the boot_grub flag on it. Once this partition existed, then Fedora 17 was able to use custom partitioning successfully during installation.

Windows 8 

After all seemed well with the completed Fedora installation, I attempted to boot back to Windows 8. Unfortunately, after following the above procedure to go back to UEFI and Secure boot, I encountered an error message about not having any bootable partition. GParted Live CD to the rescue again! Using GParted, I right-clicked the Windows Recovery partition, and set it's flag to boot, and applied the change. Surprising Windows 8 booted right back up without any apparent issues.

Conclusion

It is possible to use both Windows 8 and Linux on the Toshiba Satellite C855D-S5351 laptop. Although I disabled Secure and UEFI booting in order to make it possible. Next, I may explore the possibility of installing Linux using Secure UEFI booting, as several distributions claim that capability.

Soon, the Atheros alx kernel module for wired ethernet networking should be in the mainstream kernel. Reportedly, the Realtek Wireless rtl8723ae kernel module may be reworked and merged with other similar modules for Realtek Wireless devices, so it may also be available in the mainstream kernel in the near future. For now, there's compat-drivers, compat-wireless, and various repositories around to enable the use of both wired and wireless networking.




How to create a Custom GNOME 3 Launcher

How to create a Custom Gnome 3 Desktop Launcher

Creating a custom launcher icon to put on the Gnome 3 Desktop dock called "Dash" is fairly easy, if you know what to do.

Create a ".desktop" file with the command: 
gnome-desktop-item-edit ~/Desktop/ --create-new MYAPPNAME.desktop

Now, copy it to /usr/share/applications as the root user or using sudo:
sudo cp MYAPPNAME.desktop /usr/share/applications

Then, the application can be found in the overview mode of Gnome 3 (when you press the Windows key and start typing "MYAPPNAME". Right-click on the found icon and choose "Add to Favorites" or just drag it over into the dock ("Dash").

Monday, November 5, 2012

Jelly Bean Leak for Verizon's Samsung Galaxy S III

Jelly Bean Leak for Verizon's Samsung Galaxy S III

On November 3rd, 2012, I saw that there was a Jelly Bean leak for Verizon's Samsung Galaxy S III published at the XDA Developer Verizon Galaxy S III Android Development Forum. I was so excited to try it, that I even downloaded the 800+ MB file from the [ROM][JB] - Stock Root De-Odex - I535VRBLI5 (vzw leak) thread on my battery while on a layover in Chicago O'hare. That night, after settling down a bit, I successfully installed the zip using the TeamWin's Recovery Project (installed from the GooManager app). 

Before attempting to load this custom ROM on the device, you are warned that you are voiding your warranty and face the risk of bricking your device if something goes wrong. You will need to have a Verizon Samsung Galaxy S III rooted, and have a custom recovery image installed in order to load the ROM. You will have to unlock the bootloader. You should backup the IMEI of your device, as it has been known to be corrupted upon installing custom ROMs. All of these topics are discussed in threads in the XDA Developer Verizon Galaxy S III Android Development Forum. Please read the threads carefully and backup your IMEI and current ROM to your external SD card, so everything can hopefully be restored in the event of a problem.

What's new?

Jelly Bean definitely feels faster and smoother with almost no lag noticeable. If you do a factory reset, you'll notice that new helpful tips appear more often than in Ice Cream Sandwich. I found out the hard way that performing a factory reset does erase the internal SD card, so be sure to put any of your backups on the external SD card, or copy them to your computer for safe keeping.

While Google made numerous changes in Jelly Bean, what I noticed was the following:

Notifications

The date and time are now clearly displayed at the top of the notification shade. The display brightness slider and auto checkbox are displayed below the toggles. The notifications from SMS and MMS now show the full message, if possible, and other apps show more detail than before. Now, if you press-hold, then the App Info can be displayed to take you to manage the application.

Camera

The camera now includes the following effect filters: Cold Vintage, Warm Vintage, Posterize, Solarize, Green Point, Blue Point, Red-yellow Point, Washed Out, Black and white, Sepia, and Negative. These filters are applied in real-time as the image is recorded or displayed.

The shooting mode for the camera now has an improved HDR mode and a new Low light mode, which allows for much better indoor shots.

Camcorder

The camcorder now permits video recordings to be paused, resumed, or stopped. The camcorder supports the same filters as the camera.

Pop Up Video

When playing back a video in the Video Player Pop Up, the video can be paused and re-sized up to the width of the screen in portrait mode.

Lock Screen Menu

The menu that appears when you press the power button now has a much more functional layout, particularly for switching sound modes.

Keyboard

The Swype keyboard is now the default. There is also a Samsung keyboard and Google voice typing available.

What's custom?

This ROM has a couple of notable modifications, the Google Now application instead of S Voice, and it seems to be configured to use global networks.

Conclusions

After running this leaked ROM for the last couple of days, I'm glad that I loaded it because it is more visually appealing and works faster than the stock ROM. The improved camera and camcorder make the biggest difference to me, but I also really like the expanded notifications and quick access to control the display brightness. I am quite pleased with it's stability. Only when executing Gscripts to enable Google Wallet, did I have any Activity Not Responding (ANR) issues. I was able to get the hacked version of Goggle Wallet to work, though. Also, the Extra Apps for Samsung S III installed fine.

I haven't spent too much time with it yet on the road, so I haven't had a chance to really put it's battery performance to the test, but from what little time I've not had it connected to my computer, it doesn't seem to drain very quick.